Initial commit: Freedom Admin 权限管理系统

This commit is contained in:
张家训
2026-08-19 14:45:24 +08:00
commit 54acf90f4e
80 changed files with 6871 additions and 0 deletions
+379
View File
@@ -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 管理系统的数据库结构设计,包括表关系、字段定义、索引设计和数据完整性约束。