Shiro权限框架学习-表结构设计

权限模型

Shiro权限框架学习-表结构设计
参照权限模型来设计自己的表

表结构设计

在权限管理系统中一般会涉及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;

具体内容根据实际的业务逻辑进行修改调整。

上一篇:Sql Server 2005 中文乱码 解决


下一篇:php – MySQL联盟非法混合排序规则