mysql_基本权限模型建表结构

建表

  • 由于咱们的系统比较简单且权限要求不台复杂,那么我们的表结构也没必要复杂了,就新建5个表就行了
    1.用户表(user)
CREATE TABLE `user` (
  `id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(50) NOT NULL DEFAULT '' COMMENT '用户名',
  `password` varchar(50) NOT NULL COMMENT '密码',
  `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
  `type` varchar(50) DEFAULT NULL,
  `updatetim` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `regdate` datetime DEFAULT NULL,
  `is_delete` int(10) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=280 DEFAULT CHARSET=utf8 COMMENT='用户表';

这里存放用户的基本信息,具体的什么信息可以根据自己要求来

user表

2.角色表或者叫组表(group)

  • 这里要分几个组,自己定;比如普通成员、管理员
CREATE TABLE `tgroup` (
 `tg_id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '组id',
 `group_name` varchar(50) NOT NULL COMMENT '组名称',
 `parent_tg_id` varchar(50) NOT NULL COMMENT '父组',
 `description` varchar(200) DEFAULT NULL COMMENT '组描述',
 `createtime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
 `is_delete` int(10) NOT NULL DEFAULT '0',
 PRIMARY KEY (`tg_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='组表';
group表

3.用户角色关联表

  • 规定用户是什么角色,就是做个关联
CREATE TABLE `tusergrouprelation` (
`tug_id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '用户组id',
`tu_id` bigint(10) NOT NULL COMMENT '用户id',
`tg_id` bigint(10) NOT NULL COMMENT '用户组id',
PRIMARY KEY (`tug_id`),
KEY `tu_id` (`tu_id`),
KEY `tg_id` (`tg_id`),
CONSTRAINT `tUserGroupRelation_ibfk_1` FOREIGN KEY (`tu_id`) REFERENCES `user` (`id`),
CONSTRAINT `tUserGroupRelation_ibfk_2` FOREIGN KEY (`tg_id`) REFERENCES `tgroup` (`tg_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='用户组表';
用户角色关联表
  1. 权限表
  • 设置可发表权限,或者管理权限 ,也就是设置几个权限等级
CREATE TABLE `tright` (
  `tr_id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '权限id',
  `pargent_tr_id` bigint(10) NOT NULL COMMENT '父级权限id',
  `right_name` varchar(50) NOT NULL COMMENT '权限名称',
  `description` varchar(200) DEFAULT NULL COMMENT '权限描述',
  `createtime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
  `is_delete` int(10) NOT NULL DEFAULT '0',
  PRIMARY KEY (`tr_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='权限表';
权限表

5.角色组权限关联表

  • 规定哪个角色拥有哪些权限
CREATE TABLE `tgroupRightRelation` (
  `tgr_id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '记录标识id',
  `tg_id` bigint(10) NOT NULL COMMENT '组id',
  `tr_id` bigint(10) NOT NULL COMMENT '权限id',
  `right_type` bigint(10) NOT NULL COMMENT '0:可访问,1:可授权',
  PRIMARY KEY (`tgr_id`),
  KEY `tr_id` (`tr_id`),
  KEY `tg_id` (`tg_id`),
  CONSTRAINT `tgroupRightRelation_ibfk_1` FOREIGN KEY (`tr_id`) REFERENCES `tright` (`tr_id`),
  CONSTRAINT `tgroupRightRelation_ibfk_2` FOREIGN KEY (`tg_id`) REFERENCES `tgroup` (`tg_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='组权限表';
角色组权限关联表

@晴-2017-08-29 10:12:16

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容