免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
アクセス許可モデル
参照権限モデルは、独自のテーブルを設計します
テーブルデザイン
権利管理システムでは、一般的に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;
詳細な要約は、実際のビジネス・ロジックに応じて調整改変しました。