美文网首页测试开发
mysql_基本权限模型建表结构

mysql_基本权限模型建表结构

作者: 古佛青灯度流年 | 来源:发表于2017-08-29 10:12 被阅读183次

    建表

    • 由于咱们的系统比较简单且权限要求不台复杂,那么我们的表结构也没必要复杂了,就新建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

    相关文章

      网友评论

        本文标题:mysql_基本权限模型建表结构

        本文链接:https://www.haomeiwen.com/subject/uyfodxtx.html