简单RBAC数据库创建

来源:互联网 发布:数据挖掘岗位要求 编辑:程序博客网 时间:2024/06/11 04:01

1众所周知,RBAC是现社会管理系统最为普遍的开发任务,接下来为大家详细介绍其中最为基础的数据库链表建立


   

    a. 用户表

       CREATE TABLE `user` (         `id` int(11) unsigned NOT NULL AUTO_INCREMENT,         `name` varchar(20) NOT NULL DEFAULT '' COMMENT '姓名',         `email` varchar(30) NOT NULL DEFAULT '' COMMENT '邮箱',         `is_admin` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否是超级管理员 1表示是 0 表示不是',         `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1:有效 0:无效',         `updated_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '最后一次更新时间',         `created_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '插入时间',         PRIMARY KEY (`id`),         KEY `idx_email` (`email`)       ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='用户表';


  b.角色表

     CREATE TABLE `role` (         `id` int(11) unsigned NOT NULL AUTO_INCREMENT,         `name` varchar(50) NOT NULL DEFAULT '' COMMENT '角色名称',         `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1:有效 0:无效',        `updated_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '最后一次更新时间',         `created_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '插入时间',          PRIMARY KEY (`id`)          ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色表';


  c.用户角色表

      CREATE TABLE `user_role` (        `id` int(11) unsigned NOT NULL AUTO_INCREMENT,        `uid` int(11) NOT NULL DEFAULT '0' COMMENT '用户id',        `role_id` int(11) NOT NULL DEFAULT '0' COMMENT '角色ID',        `created_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '插入时间',         PRIMARY KEY (`id`),         KEY `idx_uid` (`uid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户角色表';


  d.权限表

      CREATE TABLE `access` (        `id` int(11) unsigned NOT NULL AUTO_INCREMENT,        `title` varchar(50) NOT NULL DEFAULT '' COMMENT '权限名称',        `urls` varchar(1000) NOT NULL DEFAULT '' COMMENT 'json 数组',        `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1:有效 0:无效',        `updated_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '最后一次更新时间',        `created_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '插入时间',         PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='权限详情表';


  e.角色权限表

      CREATE TABLE `role_access` (        `id` int(11) unsigned NOT NULL AUTO_INCREMENT,        `role_id` int(11) NOT NULL DEFAULT '0' COMMENT '角色id',        `access_id` int(11) NOT NULL DEFAULT '0' COMMENT '权限id',        `created_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '插入时间',         PRIMARY KEY (`id`),         KEY `idx_role_id` (`role_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色权限表';

     f.RBAC数据库览图


2:此五张表在开发简单的RBAC练习中完全可以使用。



3:更多文档可以在github.com/apanly/rbac中下载。





原创粉丝点击