Files
HertzAdmin-SpringBoot/数据库说明文档.md
2026-01-22 17:47:48 +08:00

163 lines
5.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Hertz 权限管理系统数据库说明文档
## 1. 数据库概述
- **数据库名称**: `hertz_springboot`
- **数据库类型**: MySQL
- **字符集**: utf8mb4
- **排序规则**: utf8mb4_general_ci (推荐)
## 2. ER 图设计概要
系统主要包含 5 张表,采用标准的 RBAC用户-角色-权限)设计模型:
- `sys_user`: 用户表
- `sys_role`: 角色表
- `sys_menu`: 菜单/权限表
- `sys_user_role`: 用户-角色关联表
- `sys_role_menu`: 角色-菜单关联表
## 3. 表结构详解
### 3.1 系统用户表 (sys_user)
存储系统的登录用户信息。
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **id** | bigint | 20 | NO | AUTO_INCREMENT | 主键 ID |
| username | varchar | 50 | NO | | 用户名 (唯一) |
| password | varchar | 100 | NO | | 加密密码 (BCrypt) |
| nickname | varchar | 50 | NO | | 用户昵称 |
| avatar_path | varchar | 255 | YES | NULL | 头像路径 |
| phone | varchar | 20 | YES | NULL | 手机号 |
| email | varchar | 100 | YES | NULL | 邮箱 |
| gender | tinyint | 1 | YES | 0 | 0-未知 1-男 2-女 |
| status | tinyint | 4 | YES | 1 | 0-禁用 1-启用 |
| created_at | datetime | | YES | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | | YES | CURRENT_TIMESTAMP | 更新时间 |
### 3.2 系统角色表 (sys_role)
存储系统的角色信息。
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **id** | bigint | 20 | NO | AUTO_INCREMENT | 主键 ID |
| role_key | varchar | 50 | NO | | 角色标识 (唯一,如 ADMIN) |
| role_name | varchar | 50 | NO | | 角色名称 (如 管理员) |
| status | tinyint | 4 | YES | 1 | 0-禁用 1-启用 |
| created_at | datetime | | YES | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | | YES | CURRENT_TIMESTAMP | 更新时间 |
### 3.3 系统菜单表 (sys_menu)
存储菜单和按钮权限信息,支持树形结构。
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **id** | bigint | 20 | NO | AUTO_INCREMENT | 主键 ID |
| parent_id | bigint | 20 | YES | 0 | 父菜单 ID (0为顶级) |
| type | varchar | 10 | NO | | 菜单类型: D-目录 M-菜单 B-按钮 |
| name | varchar | 50 | NO | | 菜单名称/按钮名称 |
| path | varchar | 200 | YES | NULL | 路由路径 (前端路由) |
| component | varchar | 200 | YES | NULL | 组件路径 (Vue组件) |
| perms | varchar | 100 | YES | NULL | 权限标识 (如 system:user:view) |
| icon | varchar | 100 | YES | NULL | 菜单图标 |
| sort | int | 11 | YES | 0 | 排序 (数值越小越靠前) |
| visible | tinyint | 4 | YES | 1 | 0-隐藏 1-显示 |
| status | tinyint | 4 | YES | 1 | 0-禁用 1-启用 |
| created_at | datetime | | YES | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | | YES | CURRENT_TIMESTAMP | 更新时间 |
### 3.4 用户角色关联表 (sys_user_role)
用户与角色的多对多关系表。
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **id** | bigint | 20 | NO | AUTO_INCREMENT | 主键 ID |
| user_id | bigint | 20 | NO | | 用户 ID |
| role_id | bigint | 20 | NO | | 角色 ID |
### 3.5 角色菜单关联表 (sys_role_menu)
角色与菜单(权限)的多对多关系表。
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **id** | bigint | 20 | NO | AUTO_INCREMENT | 主键 ID |
| role_id | bigint | 20 | NO | | 角色 ID |
| menu_id | bigint | 20 | NO | | 菜单 ID |
### 3.6 系统监控日志表 (sys_monitor_log)
存储系统监控的日志信息。
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **id** | bigint | 20 | NO | AUTO_INCREMENT | 主键 ID |
| cpu_usage | double | | NO | | CPU使用率(%) |
| memory_usage | double | | NO | | 内存使用率(%) |
| memory_total | bigint | | NO | | 总内存(字节) |
| memory_used | bigint | | NO | | 已用内存(字节) |
| created_at | datetime | | NO | CURRENT_TIMESTAMP | 记录时间 |
### 3.7 对话记录表 (ai_conversations)
存储 AI 助手的对话会话记录。
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **id** | bigint | 20 | NO | AUTO_INCREMENT | 主键 ID |
| user_id | bigint | 20 | NO | | 用户 ID |
| title | varchar | 255 | NO | | 对话标题 |
| created_at | datetime | | NO | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | | NO | CURRENT_TIMESTAMP | 更新时间 |
### 3.8 对话消息表 (ai_messages)
存储对话的具体消息内容。
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **id** | bigint | 20 | NO | AUTO_INCREMENT | 主键 ID |
| conversation_id | bigint | 20 | NO | | 所属对话 ID |
| role | enum | | NO | | 消息角色 (user/assistant) |
| content | text | | NO | | 消息内容 |
| created_at | datetime | | NO | CURRENT_TIMESTAMP | 创建时间 |
## 4. 初始数据说明
系统初始化脚本 (`schema.sql`) 会预置以下数据:
1. **初始角色**:
- `ADMIN`: 超级管理员,拥有所有权限。
2. **初始菜单结构**:
- 仪表盘
- 系统管理
- 用户管理
- 角色管理
- 菜单管理
3. **初始用户**:
- `hertz`: 管理员账号,已绑定 ADMIN 角色。
- `demo`: 演示账号。
## 5. 数据字典与枚举
- **用户/角色/菜单状态 (status)**:
- `1`: 启用 (Normal)
- `0`: 禁用 (Disabled)
- **菜单类型 (type)**:
- `D`: 目录 (Directory) - 不对应具体页面,仅用于分组
- `M`: 菜单 (Menu) - 对应具体的前端页面
- `B`: 按钮 (Button) - 页面内的功能按钮,用于权限控制
- **性别 (gender)**:
- `0`: 未知
- `1`: 男
- `2`: 女