权限模型
参照权限模型来设计自己的表
表结构设计
在权限管理系统中一般会涉及5张表,分别为
1.sys_users 用户表
2.sys_roles 角色表
3.sys_permissions 权限或资源表
4.sys_users_roles 用户角色关系表
5.sys_roles_permissions 角色权限关系表
sys_users 用户表
CREATE TABLE `sys_users` (
`id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`account` varchar(45) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '账号',
`password` varchar(45) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '密码',
`sex` tinyint(1) DEFAULT '0' COMMENT '性别 0男 1女',
`idcard` varchar(225) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '身份证',
`email` varchar(45) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '邮箱',
`phone` varchar(45) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '电话',
`status` tinyint(1) DEFAULT '0' COMMENT '状态(0启用 1冻结 2删除)',
`createtime` datetime DEFAULT NULL COMMENT '用户创建时间',
`lasttime` datetime DEFAULT NULL COMMENT '最后登录时间',
`salt` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '加密盐值',
`roleid` int(225) DEFAULT NULL COMMENT '角色id',
`age` int(3) DEFAULT NULL COMMENT '年龄',
`updatetime` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
sys_roles 角色表
CREATE TABLE `sys_roles` (
`id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '角色id',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '角色名称',
`description` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '角色描述',
`pid` bigint(11) DEFAULT NULL COMMENT '父节点,当前角色的上级节点',
`available` tinyint(1) DEFAULT NULL COMMENT '是否锁定(0否 1是)',
`createtime` datetime DEFAULT NULL COMMENT '角色创建时间',
`updatetime` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
sys_permissions 权限或资源表
CREATE TABLE `sys_permissions` (
`id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '权限id',
`name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '权限名称',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '权限描述',
`url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '权限访问路径',
`perms` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '权限标识',
`parentid` bigint(11) DEFAULT NULL COMMENT '父级权限id',
`type` tinyint(1) DEFAULT NULL COMMENT '类型 0:目录 1:菜单 2:按钮',
`order` int(3) DEFAULT NULL COMMENT '排序',
`icon` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '图标',
`status` tinyint(1) DEFAULT '0' COMMENT '状态:0有效;1删除',
`createtime` datetime DEFAULT NULL COMMENT '创建时间',
`updatetime` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
sys_users_roles 用户角色关系表
CREATE TABLE `sys_users_roles` (
`id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '用户角色关系表id',
`userid` bigint(11) DEFAULT NULL COMMENT '用户id',
`roleid` bigint(11) DEFAULT NULL COMMENT '角色id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
sys_roles_permissions 角色权限资源关系表
CREATE TABLE `sys_roles_permissions` (
`id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '角色权限关系表id',
`roleid` bigint(11) DEFAULT NULL COMMENT '角色id',
`permissionid` bigint(11) DEFAULT NULL COMMENT '权限id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
具体内容根据实际的业务逻辑进行修改调整。