产品需求
- 将权限控制按层级分为模块、页面、按钮、数据字段
- 定义角色,授权角色拥有权限
- 角色绑定部门
- 给用户分配角色
- 数据权限与用户绑定
数据库使用的是mysql,数据表相关如下
角色表
CREATE TABLE `role`(
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(200) NOT NULL,
`code` varchar(200) NOT NULL,
`enable` tinyint(1) default 1 comment '1-启用 0-禁用',
`state` tinyint(1) default 1 comment ' 1-未删除 0-删除',
`create_at` datetime NOT NULL ,
`update_at` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
SET FOREIGN_KEY_CHECKS=1;
用户表
CREATE TABLE `admin_user` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(100) default NULL comment '名称',
`user_name` varchar(100) NOT NULL comment '用户名',
`password` varchar(100) NOT NULL ,
`email` varchar(100) NOT NULL,
`country_code` varchar(100) DEFAULT NULL,
`address` varchar(250) DEFAULT NULL comment '地址',
`avatar` varchar(250) default null comment '头像',
`enable` tinyint(1) default 1 comment '1-启用 0-禁用',
`state` tinyint(1) default 1 comment '0-删除 1-未删除',
`create_at` datetime NOT NULL ,
`update_at` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
SET FOREIGN_KEY_CHECKS = 1;
权限表
DROP TABLE IF EXISTS `resources`;
CREATE TABLE `resources`(
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(200) NOT NULL,
`type` tinyint(3) NOT NULL comment '1-目录,2-页面 3-按钮',
`parent_id` bigint NOT NULL,
`url` varchar(500) default NULL,
`router` varchar(500) default NULL,
`permission` varchar(200) NOT NULL,
`enable` tinyint(1) default 1 comment '1-启用 0-禁用',
`state` tinyint(1) default 1 comment ' 1-未删除 0-删除',
`create_at` datetime NOT NULL ,
`update_at` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
SET FOREIGN_KEY_CHECKS=1;
关联表
-- ----------------------------
-- Table role_admin_user 角色与用户
-- ----------------------------
CREATE TABLE `role_admin_user`(
`id` bigint NOT NULL AUTO_INCREMENT,
`role_id` bigint NOT NULL ,
`admin_user_id` bigint NOT NULL ,
`enable` tinyint(1) default 1 comment '1-启用 0-禁用',
`state` tinyint(1) default 1 comment ' 1-未删除 0-删除',
`create_at` datetime NOT NULL ,
`update_at` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
SET FOREIGN_KEY_CHECKS=1;
-- ----------------------------
-- Table role_resources 角色与权限(资源)
-- ----------------------------
CREATE TABLE `role_resources`(
`id` bigint NOT NULL AUTO_INCREMENT,
`role_id` bigint NOT NULL ,
`resources_id` bigint NOT NULL ,
`enable` tinyint(1) default 1 comment '1-启用 0-禁用',
`state` tinyint(1) default 1 comment ' 1-未删除 0-删除',
`create_at` datetime NOT NULL ,
`update_at` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
SET FOREIGN_KEY_CHECKS=1;
要去赶需求了,后续完善