RBAC从零开始--数据库表设计
来源:互联网 发布:人工智能 医学 编辑:程序博客网 时间:2024/05/13 23:35
RBAC(基于角色的权限访问控制),很明显要有角色表、权限表,当然用户表是不能少的,在加上两张关联表,用户角色表(这里一个用户只对应一个角色,按道理可以整合一张表,在用户表里加上一个角色id),角色权限表。此外,还要设计一张用户操作信息日志表,记录用户的操作信息。
用户表
角色表
权限表
用户角色表
角色权限表
操作信息日志表
注:所有的数据字段都为非空字段,设有默认值,每个字段都加有注释
用户表的DDL
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(20) NOT NULL DEFAULT '' COMMENT '用户名', `email` varchar(36) 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:无效', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
角色表DDL
CREATE TABLE `role` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '角色id', `name` varchar(64) NOT NULL DEFAULT '' COMMENT '角色名', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '该记录是否有效1:有效、0:无效', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
权限表DDL
CREATE TABLE `access` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '权限id', `title` varchar(64) NOT NULL DEFAULT '' COMMENT '权限标题', `uris` varchar(1000) NOT NULL DEFAULT '' COMMENT '权限路径', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '该记录是否有效1:有效、0:无效', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
用户角色表DDL
CREATE TABLE `user_role` ( `id` int(11) NOT NULL COMMENT '主键', `uid` int(11) NOT NULL DEFAULT '0' COMMENT '用户id', `role_id` int(11) NOT NULL DEFAULT '0' COMMENT '角色id', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
角色权限表DDL
CREATE TABLE `role_access` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `role_id` int(11) NOT NULL DEFAULT '0' COMMENT '角色id', `access_id` int(11) NOT NULL DEFAULT '0' COMMENT '权限id', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
操作信息日志表DDL
CREATE TABLE `operate_log_info` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `uid` int(11) NOT NULL DEFAULT '0' COMMENT '操作用户id', `uname` varchar(64) NOT NULL DEFAULT '' COMMENT '操作用户名', `from_ip` varchar(64) NOT NULL DEFAULT '' COMMENT '操作人的机器ip', `operate_func` varchar(255) NOT NULL DEFAULT '' COMMENT '操作的功能,例如:登录、插入记录等等', `visit_method` varchar(255) NOT NULL DEFAULT '' COMMENT '调用入口的方法', `method_cost_time` varchar(255) NOT NULL DEFAULT '' COMMENT '访问方法所花费的时间', `log_type` varchar(32) NOT NULL DEFAULT '' COMMENT '日志类型:error/info/warn', `uri` varchar(255) NOT NULL DEFAULT '' COMMENT '访问路径', `method` varchar(16) NOT NULL DEFAULT '' COMMENT '请求方法:post/get/put/delete/head', `visit_method_error_info` varchar(1000) NOT NULL DEFAULT '' COMMENT '访问方法的错误信息', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '该记录是否有效,1:有效、0:无效', `login_out_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '登录时间', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
下篇将完成所有配置文件的配置,让空项目跑起来(一步、一步两步)!
阅读全文
0 0
- RBAC从零开始--数据库表设计
- rbac数据库设计
- RBAC数据库的设计
- rbac数据库设计
- RBAC数据库设计
- RBAC用户权限管理数据库设计
- RBAC用户权限管理数据库设计
- RBAC用户权限管理数据库设计
- RBAC用户权限管理数据库设计
- RBAC用户权限管理数据库设计
- RBAC用户权限管理数据库设计
- RBAC用户权限管理数据库设计
- RBAC用户权限管理数据库设计
- RBAC用户权限管理数据库设计
- 数据库 rbac 中的表
- RBAC从零开始--Mybatis表映射实体
- RBAC 权限控制数据库设计结构图
- RBAC权限管理表设计
- Unity-Unity编辑器Part1
- 富途牛牛荣获36氪NEXT年度最佳炒股产品
- 数据结构实验之栈与队列三:后缀式求值
- MPAndroidChart之LineChart使用
- 除了12306,谁让回家的路变得更艰辛?
- RBAC从零开始--数据库表设计
- SQL详讲02
- Unity-Unity编辑器Part2
- 高交会闭幕 智能手表跟拍无人机成焦点
- ARM年度大秀:看清“智能化”这枚硬币的两面
- java基础面试题总结之一
- day17配置文件+dbUtils工具包
- CCF试题 201612-2 工资计算
- 智能指针剖析