Initial commit: Freedom Admin 权限管理系统
This commit is contained in:
@@ -0,0 +1,379 @@
|
||||
# Freedom Admin 管理系统 SQLER 图
|
||||
|
||||
## 数据库关系图
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
%% 用户表
|
||||
TSysUser {
|
||||
bigint id PK
|
||||
varchar username
|
||||
varchar password
|
||||
varchar encodeType
|
||||
varchar userType
|
||||
varchar nickname
|
||||
varchar avatar
|
||||
varchar phone
|
||||
varchar email
|
||||
varchar signature
|
||||
int status
|
||||
varchar createBy
|
||||
datetime createDate
|
||||
varchar updateBy
|
||||
datetime updateDate
|
||||
boolean delFlag
|
||||
}
|
||||
|
||||
%% 角色表
|
||||
TSysRole {
|
||||
bigint id PK
|
||||
varchar roleName
|
||||
varchar roleCode
|
||||
varchar description
|
||||
int status
|
||||
varchar createBy
|
||||
datetime createDate
|
||||
varchar updateBy
|
||||
datetime updateDate
|
||||
boolean delFlag
|
||||
}
|
||||
|
||||
%% 权限表
|
||||
TSysPermission {
|
||||
bigint id PK
|
||||
varchar permissionName
|
||||
varchar permissionCode
|
||||
varchar description
|
||||
varchar url
|
||||
varchar method
|
||||
int type
|
||||
bigint parentId
|
||||
int sort
|
||||
int status
|
||||
varchar createBy
|
||||
datetime createDate
|
||||
varchar updateBy
|
||||
datetime updateDate
|
||||
boolean delFlag
|
||||
}
|
||||
|
||||
%% 部门表
|
||||
TSysDept {
|
||||
bigint id PK
|
||||
varchar deptName
|
||||
varchar deptCode
|
||||
varchar description
|
||||
bigint parentId
|
||||
int sort
|
||||
int status
|
||||
varchar createBy
|
||||
datetime createDate
|
||||
varchar updateBy
|
||||
datetime updateDate
|
||||
boolean delFlag
|
||||
}
|
||||
|
||||
%% 关联表
|
||||
TSysUserRole {
|
||||
bigint id PK
|
||||
bigint userId FK
|
||||
bigint roleId FK
|
||||
varchar createBy
|
||||
datetime createDate
|
||||
varchar updateBy
|
||||
datetime updateDate
|
||||
boolean delFlag
|
||||
}
|
||||
|
||||
TSysRolePermission {
|
||||
bigint id PK
|
||||
bigint roleId FK
|
||||
bigint permissionId FK
|
||||
varchar createBy
|
||||
datetime createDate
|
||||
varchar updateBy
|
||||
datetime updateDate
|
||||
boolean delFlag
|
||||
}
|
||||
|
||||
%% 生成器配置表
|
||||
GeneratorConfig {
|
||||
bigint id PK
|
||||
varchar tableName
|
||||
varchar tableComment
|
||||
varchar author
|
||||
varchar packageName
|
||||
varchar moduleName
|
||||
varchar functionName
|
||||
varchar entityName
|
||||
varchar mapperName
|
||||
varchar serviceName
|
||||
varchar serviceImplName
|
||||
varchar controllerName
|
||||
varchar createBy
|
||||
datetime createDate
|
||||
varchar updateBy
|
||||
datetime updateDate
|
||||
boolean delFlag
|
||||
}
|
||||
|
||||
%% 关系定义
|
||||
TSysUser ||--o{ TSysUserRole : "拥有"
|
||||
TSysRole ||--o{ TSysUserRole : "分配"
|
||||
TSysRole ||--o{ TSysRolePermission : "授权"
|
||||
TSysPermission ||--o{ TSysRolePermission : "被授予"
|
||||
TSysDept ||--o{ TSysUser : "属于"
|
||||
TSysPermission ||--o{ TSysPermission : "层级关系"
|
||||
TSysDept ||--o{ TSysDept : "层级关系"
|
||||
```
|
||||
|
||||
## 数据字典
|
||||
|
||||
### 表结构详细信息
|
||||
|
||||
#### 1. 用户表 (t_sys_user)
|
||||
|
||||
| 字段名 | 数据类型 | 长度 | 允许空 | 主键 | 说明 | 默认值 |
|
||||
|--------|----------|------|--------|------|------|--------|
|
||||
| id | bigint | 20 | NO | PK | 主键ID | 自增 |
|
||||
| username | varchar | 50 | NO | | 登录用户名 | |
|
||||
| password | varchar | 255 | NO | | 加密密码 | |
|
||||
| encodeType | varchar | 20 | YES | | 加密方式 | MD5 |
|
||||
| userType | varchar | 20 | YES | | 用户类型 | |
|
||||
| nickname | varchar | 50 | YES | | 用户昵称 | |
|
||||
| avatar | varchar | 255 | YES | | 头像URL | |
|
||||
| phone | varchar | 20 | YES | | 手机号 | |
|
||||
| email | varchar | 100 | YES | | 邮箱 | |
|
||||
| signature | varchar | 255 | YES | | 个性签名 | |
|
||||
| status | int | 11 | YES | | 状态(0禁用,1启用) | 1 |
|
||||
| createBy | varchar | 50 | YES | | 创建人 | |
|
||||
| createDate | datetime | | YES | | 创建时间 | |
|
||||
| updateBy | varchar | 50 | YES | | 更新人 | |
|
||||
| updateDate | datetime | | YES | | 更新时间 | |
|
||||
| delFlag | boolean | | YES | | 删除标记 | 0 |
|
||||
|
||||
#### 2. 角色表 (t_sys_role)
|
||||
|
||||
| 字段名 | 数据类型 | 长度 | 允许空 | 主键 | 说明 | 默认值 |
|
||||
|--------|----------|------|--------|------|------|--------|
|
||||
| id | bigint | 20 | NO | PK | 主键ID | 自增 |
|
||||
| roleName | varchar | 50 | NO | | 角色名称 | |
|
||||
| roleCode | varchar | 50 | NO | | 角色编码 | |
|
||||
| description | varchar | 255 | YES | | 角色描述 | |
|
||||
| status | int | 11 | YES | | 状态(0禁用,1启用) | 1 |
|
||||
| createBy | varchar | 50 | YES | | 创建人 | |
|
||||
| createDate | datetime | | YES | | 创建时间 | |
|
||||
| updateBy | varchar | 50 | YES | | 更新人 | |
|
||||
| updateDate | datetime | | YES | | 更新时间 | |
|
||||
| delFlag | boolean | | YES | | 删除标记 | 0 |
|
||||
|
||||
#### 3. 权限表 (t_sys_permission)
|
||||
|
||||
| 字段名 | 数据类型 | 长度 | 允许空 | 主键 | 说明 | 默认值 |
|
||||
|--------|----------|------|--------|------|------|--------|
|
||||
| id | bigint | 20 | NO | PK | 主键ID | 自增 |
|
||||
| permissionName | varchar | 50 | NO | | 权限名称 | |
|
||||
| permissionCode | varchar | 50 | NO | | 权限编码 | |
|
||||
| description | varchar | 255 | YES | | 权限描述 | |
|
||||
| url | varchar | 255 | YES | | 请求URL | |
|
||||
| method | varchar | 10 | YES | | 请求方法 | |
|
||||
| type | int | 11 | YES | | 权限类型(1菜单,2按钮) | |
|
||||
| parentId | bigint | 20 | YES | | 父级权限ID | 0 |
|
||||
| sort | int | 11 | YES | | 排序号 | 0 |
|
||||
| status | int | 11 | YES | | 状态(0禁用,1启用) | 1 |
|
||||
| createBy | varchar | 50 | YES | | 创建人 | |
|
||||
| createDate | datetime | | YES | | 创建时间 | |
|
||||
| updateBy | varchar | 50 | YES | | 更新人 | |
|
||||
| updateDate | datetime | | YES | | 更新时间 | |
|
||||
| delFlag | boolean | | YES | | 删除标记 | 0 |
|
||||
|
||||
#### 4. 部门表 (t_sys_dept)
|
||||
|
||||
| 字段名 | 数据类型 | 长度 | 允许空 | 主键 | 说明 | 默认值 |
|
||||
|--------|----------|------|--------|------|------|--------|
|
||||
| id | bigint | 20 | NO | PK | 主键ID | 自增 |
|
||||
| deptName | varchar | 50 | NO | | 部门名称 | |
|
||||
| deptCode | varchar | 50 | NO | | 部门编码 | |
|
||||
| description | varchar | 255 | YES | | 部门描述 | |
|
||||
| parentId | bigint | 20 | YES | | 父级部门ID | 0 |
|
||||
| sort | int | 11 | YES | | 排序号 | 0 |
|
||||
| status | int | 11 | YES | | 状态(0禁用,1启用) | 1 |
|
||||
| createBy | varchar | 50 | YES | | 创建人 | |
|
||||
| createDate | datetime | | YES | | 创建时间 | |
|
||||
| updateBy | varchar | 50 | YES | | 更新人 | |
|
||||
| updateDate | datetime | | YES | | 更新时间 | |
|
||||
| delFlag | boolean | | YES | | 删除标记 | 0 |
|
||||
|
||||
#### 5. 用户角色关联表 (t_sys_user_role)
|
||||
|
||||
| 字段名 | 数据类型 | 长度 | 允许空 | 主键 | 说明 | 默认值 |
|
||||
|--------|----------|------|--------|------|------|--------|
|
||||
| id | bigint | 20 | NO | PK | 主键ID | 自增 |
|
||||
| userId | bigint | 20 | NO | FK | 用户ID | |
|
||||
| roleId | bigint | 20 | NO | FK | 角色ID | |
|
||||
| createBy | varchar | 50 | YES | | 创建人 | |
|
||||
| createDate | datetime | | YES | | 创建时间 | |
|
||||
| updateBy | varchar | 50 | YES | | 更新人 | |
|
||||
| updateDate | datetime | | YES | | 更新时间 | |
|
||||
| delFlag | boolean | | YES | | 删除标记 | 0 |
|
||||
|
||||
#### 6. 角色权限关联表 (t_sys_role_permission)
|
||||
|
||||
| 字段名 | 数据类型 | 长度 | 允许空 | 主键 | 说明 | 默认值 |
|
||||
|--------|----------|------|--------|------|------|--------|
|
||||
| id | bigint | 20 | NO | PK | 主键ID | 自增 |
|
||||
| roleId | bigint | 20 | NO | FK | 角色ID | |
|
||||
| permissionId | bigint | 20 | NO | FK | 权限ID | |
|
||||
| createBy | varchar | 50 | YES | | 创建人 | |
|
||||
| createDate | datetime | | YES | | 创建时间 | |
|
||||
| updateBy | varchar | 50 | YES | | 更新人 | |
|
||||
| updateDate | datetime | | YES | | 更新时间 | |
|
||||
| delFlag | boolean | | YES | | 删除标记 | 0 |
|
||||
|
||||
## 索引设计
|
||||
|
||||
### 主键索引
|
||||
```sql
|
||||
-- 所有表的主键索引
|
||||
PRIMARY KEY (id)
|
||||
```
|
||||
|
||||
### 唯一索引
|
||||
```sql
|
||||
-- 用户表唯一索引
|
||||
UNIQUE KEY uk_username (username),
|
||||
UNIQUE KEY uk_phone (phone),
|
||||
UNIQUE KEY uk_email (email)
|
||||
|
||||
-- 角色表唯一索引
|
||||
UNIQUE KEY uk_role_code (roleCode)
|
||||
|
||||
-- 权限表唯一索引
|
||||
UNIQUE KEY uk_permission_code (permissionCode)
|
||||
|
||||
-- 部门表唯一索引
|
||||
UNIQUE KEY uk_dept_code (deptCode)
|
||||
```
|
||||
|
||||
### 外键索引
|
||||
```sql
|
||||
-- 用户角色关联表外键索引
|
||||
KEY idx_user_id (userId),
|
||||
KEY idx_role_id (roleId)
|
||||
|
||||
-- 角色权限关联表外键索引
|
||||
KEY idx_role_id (roleId),
|
||||
KEY idx_permission_id (permissionId)
|
||||
|
||||
-- 权限表层级索引
|
||||
KEY idx_parent_id (parentId)
|
||||
|
||||
-- 部门表层级索引
|
||||
KEY idx_parent_id (parentId)
|
||||
```
|
||||
|
||||
## 数据关系说明
|
||||
|
||||
### 1. 用户-角色-权限关系模型
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
U[用户] --> UR[用户角色]
|
||||
R[角色] --> UR
|
||||
R --> RP[角色权限]
|
||||
P[权限] --> RP
|
||||
|
||||
subgraph "基础实体"
|
||||
U
|
||||
R
|
||||
P
|
||||
D[部门]
|
||||
end
|
||||
|
||||
subgraph "关联关系"
|
||||
UR
|
||||
RP
|
||||
end
|
||||
|
||||
D --> U
|
||||
```
|
||||
|
||||
### 2. 权限层级结构
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
A[根权限] --> B[模块权限]
|
||||
B --> C[菜单权限]
|
||||
C --> D[按钮权限]
|
||||
|
||||
B --> E[模块权限2]
|
||||
E --> F[菜单权限2]
|
||||
F --> G[按钮权限2]
|
||||
```
|
||||
|
||||
### 3. 部门层级结构
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
A[总公司] --> B[分公司1]
|
||||
A --> C[分公司2]
|
||||
|
||||
B --> D[部门A]
|
||||
B --> E[部门B]
|
||||
|
||||
C --> F[部门C]
|
||||
C --> G[部门D]
|
||||
```
|
||||
|
||||
## 查询优化建议
|
||||
|
||||
### 1. 常用查询SQL
|
||||
|
||||
```sql
|
||||
-- 查询用户权限
|
||||
SELECT p.* FROM t_sys_user u
|
||||
JOIN t_sys_user_role ur ON u.id = ur.user_id
|
||||
JOIN t_sys_role r ON ur.role_id = r.id
|
||||
JOIN t_sys_role_permission rp ON r.id = rp.role_id
|
||||
JOIN t_sys_permission p ON rp.permission_id = p.id
|
||||
WHERE u.id = ? AND u.del_flag = 0 AND r.del_flag = 0 AND p.del_flag = 0
|
||||
|
||||
-- 查询部门层级
|
||||
WITH RECURSIVE dept_tree AS (
|
||||
SELECT * FROM t_sys_dept WHERE id = ?
|
||||
UNION ALL
|
||||
SELECT d.* FROM t_sys_dept d
|
||||
JOIN dept_tree dt ON d.parent_id = dt.id
|
||||
)
|
||||
SELECT * FROM dept_tree WHERE del_flag = 0
|
||||
```
|
||||
|
||||
### 2. 性能优化建议
|
||||
|
||||
1. **索引优化**:为频繁查询的字段建立合适索引
|
||||
2. **分页查询**:使用MyBatis-Plus分页插件
|
||||
3. **逻辑删除**:使用del_flag字段进行软删除
|
||||
4. **数据归档**:定期归档历史数据
|
||||
|
||||
## 数据完整性约束
|
||||
|
||||
### 1. 实体完整性
|
||||
- 所有表主键ID唯一且非空
|
||||
- 通过自增方式保证主键唯一性
|
||||
|
||||
### 2. 参照完整性
|
||||
- 用户角色关联表引用用户表和角色表
|
||||
- 角色权限关联表引用角色表和权限表
|
||||
- 外键约束确保数据一致性
|
||||
|
||||
### 3. 域完整性
|
||||
- 状态字段使用枚举值约束
|
||||
- 时间字段使用标准datetime格式
|
||||
- 字符字段长度限制防止溢出
|
||||
|
||||
### 4. 业务完整性
|
||||
- 逻辑删除保证数据可恢复
|
||||
- 创建时间和更新时间的自动维护
|
||||
- 创建人和更新人的记录追踪
|
||||
|
||||
这个SQLER图详细描述了 Freedom Admin 管理系统的数据库结构设计,包括表关系、字段定义、索引设计和数据完整性约束。
|
||||
Reference in New Issue
Block a user