Files
hertz_studio_springboot/数据库说明文档.md
2026-03-03 14:41:39 +08:00

8.2 KiB
Raw Blame History

Hertz 权限管理系统数据库说明文档

1. 数据库概述

  • 数据库名称: hertz_springboot
  • 数据库类型: MySQL
  • 字符集: utf8mb4
  • 排序规则: utf8mb4_general_ci (推荐)

说明知识库RAG功能除了数据库表外还依赖 Ollama 的向量化模型Embedding。首次使用前需在运行后端的机器执行 ollama pull nomic-embed-text,并保持 application.ymlspring.ai.ollama.embedding.model 与实际模型一致。

2. ER 图设计概要

系统采用 RBAC用户-角色-权限为核心并扩展了监控、AI 对话、知识库等模块。主要表如下:

  • RBAC 权限模型
    • sys_user: 用户表
    • sys_role: 角色表
    • sys_menu: 菜单/权限表
    • sys_user_role: 用户-角色关联表
    • sys_role_menu: 角色-菜单关联表
  • 监控模块
    • sys_monitor_log: 系统监控日志表
  • AI 助手模块
    • ai_conversations: 对话记录表
    • ai_messages: 对话消息表
  • 知识库模块RAG
    • knowledge_base: 知识库表
    • knowledge_document: 知识库文档表(上传记录/存储路径/向量化状态)

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 创建时间

3.9 知识库表 (knowledge_base)

存储知识库的基本信息(名称、描述、创建时间等)。

字段名 类型 长度 允许空 默认值 说明
id bigint 20 NO AUTO_INCREMENT 主键 ID
name varchar 255 NO 知识库名称
description text YES NULL 知识库描述
create_time datetime YES CURRENT_TIMESTAMP 创建时间
create_by bigint 20 YES NULL 创建人用户 ID

3.10 知识库文档表 (knowledge_document)

存储知识库文档上传记录与落盘信息,用于“可管理、可回溯、可重建向量”。

字段名 类型 长度 允许空 默认值 说明
id bigint 20 NO AUTO_INCREMENT 主键 ID
kb_id bigint 20 NO 所属知识库 ID
original_name varchar 512 NO 原始文件名
stored_name varchar 512 NO 存储文件名UUID
stored_path varchar 1024 NO 存储相对路径(位于 uploads 根目录下)
content_type varchar 255 YES NULL MIME 类型
size_bytes bigint 20 NO 文件大小(字节)
sha256 varchar 64 YES NULL 文件哈希(用于去重/审计)
status varchar 32 NO 处理状态PROCESSING/READY/FAILED
chunk_count int 11 YES 0 分片数量
error_message varchar 1024 YES NULL 失败原因
create_time datetime YES CURRENT_TIMESTAMP 上传时间

4. 初始数据说明

系统初始化脚本 db/init.sql 会预置 RBAC 与 AI 对话相关表结构和初始数据。监控与知识库相关表请额外导入:

  • src/main/resources/schema/monitor_schema.sql
  • src/main/resources/schema/knowledge_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: 女