企业级项目权限(一)

表设计:

部门表、用户表、权限模块表、权限表、角色表、角色-用户 角色-权限关联表、权限相关log表

注意事项:

  1. 每个表都要有自己的主键
  2. 字段尽量定义为NOT NULL
  3. 尽量为每个字段添加备注
  4. 数据库字段统一小写,单词之间使用下划线分割
  5. 使用InnoDB存储引擎 MySql5.5之后默认使用
  6. 可以使用varchar的字段尽量不适用TEXT、BLOB类型
  7. 表字符集选择UTF8
/*
MySQL Backup
Source Server Version: 5.6.41
Source Database: test
Date: 2019/4/28 09:55:46
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
--  Table structure for `sys_acl`
-- ----------------------------
DROP TABLE IF EXISTS `sys_acl`;
CREATE TABLE `sys_acl` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '权限id',
  `code` varchar(20) NOT NULL DEFAULT '' COMMENT '权限码',
  `name` varchar(20) NOT NULL DEFAULT '' COMMENT '权限名称',
  `acl_module_id` int(11) NOT NULL DEFAULT '0' COMMENT '权限所在模块的id',
  `url` varchar(100) NOT NULL DEFAULT '' COMMENT '请求的url,可以填正则表达式',
  `type` int(11) NOT NULL DEFAULT '1' COMMENT '类型,1菜单2按钮3其他',
  `status` int(11) NOT NULL DEFAULT '1' COMMENT '状态1正常0冻结',
  `seq` int(11) NOT NULL DEFAULT '0' COMMENT '权限再当前模块下的顺序,由小到大',
  `remark` varchar(200) DEFAULT '' COMMENT '备注',
  `operator` varchar(20) NOT NULL DEFAULT '' COMMENT '操作者',
  `operate_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后一次更新的时间',
  `operate_ip` varchar(20) NOT NULL DEFAULT '' COMMENT '最后一次操作者的id',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
--  Table structure for `sys_acl_module`
-- ----------------------------
DROP TABLE IF EXISTS `sys_acl_module`;
CREATE TABLE `sys_acl_module` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '权限模块id',
  `name` varchar(20) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '权限模块名称',
  `parent_id` int(11) NOT NULL COMMENT '上级权限模块id',
  `level` varchar(200) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '权限模块层级',
  `seq` int(11) NOT NULL DEFAULT '0' COMMENT '权限模块自当前层级下的顺序,有小到大',
  `status` int(11) NOT NULL DEFAULT '0' COMMENT '状态 1正常0冻结',
  `remark` varchar(200) CHARACTER SET utf8 DEFAULT '' COMMENT '备注',
  `operator` varchar(20) CHARACTER SET utf8 NOT NULL COMMENT '操作者',
  `operate_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后一次操作时间',
  `operate_ip` varchar(20) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '最后一次操作者ip',
  PRIMARY KEY (`id`,`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='权限模块表';

-- ----------------------------
--  Table structure for `sys_dept`
-- ----------------------------
DROP TABLE IF EXISTS `sys_dept`;
CREATE TABLE `sys_dept` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '部门id',
  `name` varchar(20) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '部门名称',
  `parent_id` int(11) NOT NULL COMMENT '上级id',
  `level` varchar(200) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '部门层级',
  `seq` int(11) NOT NULL DEFAULT '0' COMMENT '部门自当前层级下的顺序,有小到大',
  `remark` varchar(200) CHARACTER SET utf8 DEFAULT '' COMMENT '备注',
  `operator` varchar(20) CHARACTER SET utf8 NOT NULL COMMENT '操作者',
  `operate_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后一次操作时间',
  `operate_ip` varchar(20) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '最后一次操作者ip',
  PRIMARY KEY (`id`,`parent_id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=latin1 COMMENT='部门表';

-- ----------------------------
--  Table structure for `sys_log`
-- ----------------------------
DROP TABLE IF EXISTS `sys_log`;
CREATE TABLE `sys_log` (
  `id` int(11) NOT NULL,
  `type` int(11) NOT NULL DEFAULT '0' COMMENT '权限更新的类型,1:部门,2:用户,3:权限模块,4:权限,5:角色,6:角色用户关系,7:角色权限关系',
  `target_id` int(11) NOT NULL COMMENT '基于type后指定的对象id,比如用户、权限、角色等表的主键',
  `old_value` text COMMENT '旧值',
  `new_value` text COMMENT '新值',
  `operator` varchar(20) NOT NULL COMMENT '操作者',
  `operate_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最新操作时间',
  `operate_ip` varchar(20) NOT NULL COMMENT '操作者ip',
  `status` int(11) NOT NULL DEFAULT '0' COMMENT '当前是否复原过,0:没有;1:复原过',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
--  Table structure for `sys_role`
-- ----------------------------
DROP TABLE IF EXISTS `sys_role`;
CREATE TABLE `sys_role` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '角色id',
  `name` varchar(20) NOT NULL DEFAULT '' COMMENT '角色名称',
  `type` int(11) NOT NULL DEFAULT '1' COMMENT '角色的类型1管理员角色0其他',
  `status` int(11) NOT NULL DEFAULT '1' COMMENT '状态,1:可用;2:冻结',
  `remark` varchar(200) DEFAULT '' COMMENT '备注',
  `operator` varchar(20) NOT NULL DEFAULT '' COMMENT '操作者',
  `operate_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后一次操作的时间',
  `operate_ip` varchar(20) NOT NULL DEFAULT '' COMMENT '最后一次更新者的ip',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
--  Table structure for `sys_role_acl`
-- ----------------------------
DROP TABLE IF EXISTS `sys_role_acl`;
CREATE TABLE `sys_role_acl` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `role_id` int(11) NOT NULL COMMENT '角色id',
  `acl_id` int(11) NOT NULL COMMENT '权限id',
  `operator` varchar(20) NOT NULL COMMENT '操作者',
  `operate_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP COMMENT '最新操作时间',
  `operate_ip` varchar(200) NOT NULL DEFAULT '' COMMENT '操作者ip',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
--  Table structure for `sys_role_user`
-- ----------------------------
DROP TABLE IF EXISTS `sys_role_user`;
CREATE TABLE `sys_role_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '角色权限id',
  `role_id` int(11) NOT NULL COMMENT '角色id',
  `user_id` int(11) NOT NULL COMMENT '用户id',
  `operator` varchar(20) NOT NULL DEFAULT '' COMMENT '最新操作者',
  `operate_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最新操作时间',
  `operate_ip` varchar(20) NOT NULL DEFAULT '' COMMENT '操作者的ip',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
--  Table structure for `sys_user`
-- ----------------------------
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
  `id` int(11) NOT NULL COMMENT '用户id',
  `username` varchar(20) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '用户名称',
  `telephone` varchar(13) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '手机号',
  `mail` varchar(20) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '邮箱',
  `password` varchar(40) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '加密后的密码',
  `dept_id` int(11) NOT NULL DEFAULT '0' COMMENT '用户所在部门的id',
  `status` int(11) NOT NULL DEFAULT '1' COMMENT '状态,1:正常;0:冻结;2:离职',
  `remark` varchar(200) CHARACTER SET utf8 DEFAULT '' COMMENT '备注',
  `operator` varchar(20) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '最后的操作者',
  `operate_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后一次更新时间',
  `operate_ip` varchar(20) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '最后一次更新者的ip',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- ----------------------------
--  Records 
-- ----------------------------
INSERT INTO `sys_dept` VALUES ('1','技术部','0','0','1','技术部备注','system','2019-02-14 16:48:48','127.0.0.0'), ('2','后端开发','1','0.1','1','后端开发备注','system-update','2019-02-15 16:48:50','127.0.0.1'), ('3','前端开发','1','0.1','2','前端开发备注','system','2019-02-14 16:54:15','127.0.0.0'), ('11','ui设计','1','0.1','3','ui设计备注','system','2019-02-15 16:58:43','127.0.0.0');

猜你喜欢

转载自blog.csdn.net/weixin_40910109/article/details/89632456
今日推荐