MySQL设计用户权限控制数据表

目录

何为权限

权限数据模型

 数据表设计


何为权限

权限是指为了保证职责的有效执行,而对某事项进行决策的范围和程度的控制。 

权限数据模型

该模型主要有三个实例,分别为用户、角色、权限。

用户----------->角色(一个用户可以有多种角色,比如管理员、运营者、编辑者、销售者等)

角色----------->权限(一个角色可以有多种权限,比如增加数据权限、修改数据权限、删除数据权限等)

 

 数据表设计

该模型中由五种表构成,分别为用户表、角色表、权限表、用户所属角色表、角色所属权限表

SET FOREIGN_KEY_CHECKS=0;-- ----------------------------
-- Table structure for authority
-- ----------------------------
DROP TABLE IF EXISTS `authority`;
CREATE TABLE `authority` (`id` int(11) NOT NULL,`describe` char(20) NOT NULL COMMENT '权限描述',`status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '是否启用(0禁用,1启用)',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for role
-- ----------------------------
DROP TABLE IF EXISTS `role`;
CREATE TABLE `role` (`id` int(11) NOT NULL,`role` char(20) NOT NULL,`status` tinyint(1) NOT NULL COMMENT '是否启用',`create_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',`update_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for role_authority
-- ----------------------------
DROP TABLE IF EXISTS `role_authority`;
CREATE TABLE `role_authority` (`id` int(11) NOT NULL AUTO_INCREMENT,`role_id` int(11) NOT NULL COMMENT '角色id',`authority_id` int(11) NOT NULL COMMENT '权限id',PRIMARY KEY (`id`),KEY `authority_id_fkey` (`authority_id`),KEY `role2_id_fkey` (`role_id`),CONSTRAINT `role2_id_fkey` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`),CONSTRAINT `authority_id_fkey` FOREIGN KEY (`authority_id`) REFERENCES `authority` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`user` char(20) NOT NULL,`pwd` char(32) NOT NULL,`email` varchar(255) DEFAULT NULL,`create_at` datetime DEFAULT NULL,`update_at` datetime DEFAULT NULL,`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '用户状态(0禁用,1启用,3已注销)',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for user_role
-- ----------------------------
DROP TABLE IF EXISTS `user_role`;
CREATE TABLE `user_role` (`id` int(11) NOT NULL AUTO_INCREMENT,`user_id` int(11) NOT NULL COMMENT '用户id',`role_id` int(11) NOT NULL COMMENT '角色id',PRIMARY KEY (`id`),KEY `user_id_fkey` (`user_id`),KEY `role1_id_fkey` (`role_id`),CONSTRAINT `role1_id_fkey` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`),CONSTRAINT `user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部