Shiro permission learning framework - Table Design

Disclaimer: This article is a blogger original article, follow the CC 4.0 BY-SA copyright agreement, reproduced, please attach the original source link and this statement.
This link: https://blog.csdn.net/weixin_44988811/article/details/102737075

Permissions model

Here Insert Picture Description
Reference authority model to design their own table

Table Design

In the rights management system generally involves five tables were
1.sys_users user table
2.sys_roles role table
3.sys_permissions authority or resource table
4.sys_users_roles user roles table
5.sys_roles_permissions role permissions table

sys_users user table

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 role table

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 privileges or resource table

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 user roles table

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 role privileges resource table

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;

DETAILED SUMMARY modified adjusted according to actual business logic.

Guess you like

Origin blog.csdn.net/weixin_44988811/article/details/102737075