字符集:
utf8mb4
,排序规则 utf8mb4_unicode_ci
t_role t_permisson 角色、权限表
t_role
CREATE TABLE `t_role` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`role_name` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '角色名',
`role_key` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '角色唯一标识',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0:启用 1:禁用)',
`sort` int unsigned NOT NULL DEFAULT 0 COMMENT '管理系统中的显示顺序',
`remark` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后一次更新时间',
`is_deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除(0:未删除 1:已删除)',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_role_key` (`role_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色表';
字段名 | 数据类型 | 约束条件 | 默认值 | 备注 |
---|---|---|---|---|
id | bigint unsigned | PRIMARY KEY , AUTO_INCREMENT | - | 主键ID |
role_name | varchar(32) | NOT NULL | - | 角色名 |
role_key | varchar(32) | NOT NULL , UNIQUE | - | 角色唯一标识 |
status | tinyint | NOT NULL | 0 | 状态(0:启用 1:禁用) |
sort | int unsigned | NOT NULL | 0 | 管理系统中的显示顺序 |
remark | varchar(255) | - | NULL | 备注 |
create_time | datetime | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
update_time | datetime | NOT NULL | CURRENT_TIMESTAMP | 最后一次更新时间 |
is_deleted | bit(1) | NOT NULL | b'0' | 逻辑删除(0:未删除 1:已删除) |
索引:
PRIMARY KEY
:id
UNIQUE KEY
:role_key
确保role_key
唯一
t_permisson
CREATE TABLE `t_permission` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`parent_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '父ID',
`name` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '权限名称',
`type` tinyint unsigned NOT NULL COMMENT '类型(1:目录 2:菜单 3:按钮)',
`menu_url` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '菜单路由',
`menu_icon` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '菜单图标',
`sort` int unsigned NOT NULL DEFAULT 0 COMMENT '管理系统中的显示顺序',
`permission_key` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '权限标识',
`status` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '状态(0:启用;1:禁用)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除(0:未删除 1:已删除)',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='权限表';
字段名 | 数据类型 | 约束条件 | 默认值 | 备注 |
---|---|---|---|---|
id | bigint unsigned | PRIMARY KEY , AUTO_INCREMENT | - | 主键ID |
parent_id | bigint unsigned | NOT NULL | 0 | 父ID(表示层级关系) |
name | varchar(16) | NOT NULL | - | 权限名称 |
type | tinyint unsigned | NOT NULL | - | 类型(1:目录 2:菜单 3:按钮) |
menu_url | varchar(32) | NOT NULL | '' | 菜单路由 |
menu_icon | varchar(255) | NOT NULL | '' | 菜单图标 |
sort | int unsigned | NOT NULL | 0 | 管理系统中的显示顺序 |
permission_key | varchar(64) | NOT NULL | - | 权限标识(唯一标识权限项) |
status | tinyint unsigned | NOT NULL | 0 | 状态(0:启用;1:禁用) |
create_time | datetime | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
update_time | datetime | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
is_deleted | bit(1) | NOT NULL | b'0' | 逻辑删除(0:未删除 1:已删除) |
索引:
PRIMARY KEY
:id
设计特点:
- 层级结构支持:
parent_id
字段用于表示权限的层级关系,可用于构建树状权限结构。 - 权限类别:
type
字段区分权限类型(目录、菜单、按钮),便于管理不同层级的权限。 - 前端菜单信息:
menu_url
:定义菜单路由menu_icon
:存储菜单图标
- 权限标识:
permission_key
用于唯一标识某个权限项,通常用于后端权限控制。 - 状态管理:
status
用于控制权限的启用/禁用状态。 - 逻辑删除:
is_deleted
作为软删除字段,避免直接物理删除数据。
这个表适用于权限管理系统,结合 t_role
表可以实现基于角色的权限控制 (RBAC)。
关联表
t_user_role_rel
CREATE TABLE `t_user_role_rel` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint unsigned NOT NULL COMMENT '用户ID',
`role_id` bigint unsigned NOT NULL COMMENT '角色ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除(0:未删除 1:已删除)',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户角色表';
以下是 t_user_role_rel
表的设计概述,以表格形式展示:
字段名 | 数据类型 | 约束条件 | 默认值 | 备注 |
---|---|---|---|---|
id | bigint unsigned | PRIMARY KEY , AUTO_INCREMENT | - | 主键ID |
user_id | bigint unsigned | NOT NULL | - | 用户ID |
role_id | bigint unsigned | NOT NULL | - | 角色ID |
create_time | datetime | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
update_time | datetime | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
is_deleted | bit(1) | NOT NULL | b'0' | 逻辑删除(0:未删除 1:已删除) |
索引:
PRIMARY KEY
:id
- 推荐添加
(user_id, role_id)
组合唯一索引,以确保一个用户只能有一个相同的角色。
设计特点:
- 用户与角色的多对多关系:该表是
t_user
(用户表)和t_role
(角色表)之间的中间表,实现多对多关联。 - 角色管理:用户可以分配多个角色,每个角色可以对应多个用户,适用于基于角色的访问控制 (RBAC)。
- 软删除:
is_deleted
作为逻辑删除字段,避免物理删除数据,方便数据恢复。 - 创建与更新时间:提供
create_time
和update_time
,确保可追溯数据变更。
该表的作用是连接 t_user
和 t_role
,用于管理用户与角色的对应关系。
t_role_permisson_rel
CREATE TABLE `t_role_permission_rel` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`role_id` bigint unsigned NOT NULL COMMENT '角色ID',
`permission_id` bigint unsigned NOT NULL COMMENT '权限ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除(0:未删除 1:已删除)',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户权限表';
以下是 t_role_permission_rel
表的设计概述,以表格形式展示:
字段名 | 数据类型 | 约束条件 | 默认值 | 备注 |
---|---|---|---|---|
id | bigint unsigned | PRIMARY KEY , AUTO_INCREMENT | - | 主键ID |
role_id | bigint unsigned | NOT NULL | - | 角色ID |
permission_id | bigint unsigned | NOT NULL | - | 权限ID |
create_time | datetime | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
update_time | datetime | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
is_deleted | bit(1) | NOT NULL | b'0' | 逻辑删除(0:未删除 1:已删除) |
索引:
PRIMARY KEY
:id
- 推荐添加
(role_id, permission_id)
组合唯一索引,确保同一个角色不能重复分配相同的权限。
设计特点:
- 角色与权限的多对多关系:该表是
t_role
(角色表)和t_permission
(权限表)之间的中间表,实现多对多关联。 - 权限管理:每个角色可以拥有多个权限,每个权限可以分配给多个角色,适用于基于角色的访问控制 (RBAC)。
- 软删除:
is_deleted
作为逻辑删除字段,避免直接物理删除数据,方便数据恢复和审计。 - 创建与更新时间:提供
create_time
和update_time
,便于追踪权限分配的变更历史。
该表的作用是连接 t_role
和 t_permission
,用于管理角色与权限的对应关系。