DataBseDesign工作笔记002---数据库表设计

JAVA技术交流QQ群:170933152 

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;

猜你喜欢

转载自blog.csdn.net/lidew521/article/details/81699311
今日推荐