五个表:
管理员表: z_admin
CREATE TABLE `z_admin` (
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT '管理员ID',
`username` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名',
`password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码',
`created_ip` int(11) unsigned NOT NULL COMMENT '创建该管理员的时候的IP',
`created_at` int(11) unsigned NOT NULL COMMENT '创建时间',
`is_used` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否启用 0表示启用 1表示禁用',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='管理员表';
规则表: z_rule
CREATE TABLE `z_rule` (
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT '规则ID',
`rule_url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '验证规则',
`parent_id` int(11) unsigned NOT NULL COMMENT '父ID',
`rule_desc` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '规则描述',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='规则表';
角色表: z_role
CREATE TABLE `z_role` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '角色ID',
`role_name` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '角色名',
`role_desc` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '角色描述',
`created_at` int(11) unsigned NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色表';
管理员角色关系表: z_admin_role
CREATE TABLE `z_admin_role` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`admin_id` smallint(5) unsigned NOT NULL COMMENT '管理员ID',
`role_id` smallint(5) unsigned NOT NULL COMMENT '角色ID',
PRIMARY KEY (`id`),
UNIQUE KEY `admin_role` (`admin_id`,`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='管理员与角色表关系表';
角色规则关系表: z_role_rule
CREATE TABLE `z_role_rule` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`role_id` smallint(5) unsigned NOT NULL COMMENT '角色ID',
`rule_id` smallint(5) unsigned NOT NULL COMMENT '规则ID',
PRIMARY KEY (`id`),
UNIQUE KEY `role_rule` (`role_id`,`rule_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色规则表';
关系:
一个管理员可以有多个身份(角色),一个身份(角色)可以有多个管理员,所以 管理员与角色是多对多关系。
一个身份(角色)可以拥有多个规则,一个规则可以被多个身份(角色),所以角色和规则是多对多关系。