5.9 KiB
5.9 KiB
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 | 手机号 |
| 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) 会预置以下数据:
-
初始角色:
ADMIN: 超级管理员,拥有所有权限。
-
初始菜单结构:
- 仪表盘
- 系统管理
- 用户管理
- 角色管理
- 菜单管理
-
初始用户:
hertz: 管理员账号,已绑定 ADMIN 角色。demo: 演示账号。
5. 数据字典与枚举
-
用户/角色/菜单状态 (status):
1: 启用 (Normal)0: 禁用 (Disabled)
-
菜单类型 (type):
D: 目录 (Directory) - 不对应具体页面,仅用于分组M: 菜单 (Menu) - 对应具体的前端页面B: 按钮 (Button) - 页面内的功能按钮,用于权限控制
-
性别 (gender):
0: 未知1: 男2: 女