nex_basse/backend/docs/db_schema.md

324 lines
13 KiB
Markdown
Raw Normal View History

2026-02-25 08:48:31 +00:00
# 数据库结构文档 (MySQL 5.7/8.0 兼容)
- 字符集:`utf8mb4`
- 排序规则:`utf8mb4_unicode_ci`
- 说明:本文件用于持续维护核心表结构与描述(每次变更请同步更新)。
## 1. 用户与角色
### 1.1 `sys_user` 用户表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| user_id | INT | PK, AUTO_INCREMENT | 用户ID |
| username | VARCHAR(50) | UNIQUE, NOT NULL | 登录名 |
| display_name | VARCHAR(50) | NOT NULL | 显示名 |
| email | VARCHAR(100) | UNIQUE | 邮箱 |
| phone | VARCHAR(30) | UNIQUE | 手机 |
| password_hash | VARCHAR(255) | NOT NULL | 密码哈希 |
| avatar | VARCHAR(255) | | 头像路径 |
| status | TINYINT(1) | NOT NULL | 状态1 启用 / 0 禁用 |
| is_deleted | TINYINT(1) | NOT NULL | 是否软删除 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
### 1.2 `sys_role` 角色表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| role_id | INT | PK, AUTO_INCREMENT | 角色ID |
| role_code | VARCHAR(50) | UNIQUE, NOT NULL | 角色编码 |
| role_name | VARCHAR(50) | NOT NULL | 角色名称 |
| status | TINYINT(1) | NOT NULL | 状态1 启用 / 0 禁用 |
| remark | TEXT | | 备注 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
### 1.3 `sys_user_role` 用户-角色关联表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| id | INT | PK, AUTO_INCREMENT | 关联ID |
| user_id | INT | INDEX, NOT NULL | 用户ID |
| role_id | INT | INDEX, NOT NULL | 角色ID |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
| | | UNIQUE(user_id, role_id) | 唯一约束 |
## 2. 权限
### 2.1 `sys_permission` 权限表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| perm_id | INT | PK, AUTO_INCREMENT | 权限ID |
| parent_id | INT | INDEX | 父级权限ID |
| name | VARCHAR(100) | NOT NULL | 权限名称 |
| code | VARCHAR(100) | UNIQUE, NOT NULL | 权限编码 |
| perm_type | VARCHAR(20) | NOT NULL | menu/button |
| level | INT | NOT NULL | 1/2/3 级 |
| path | VARCHAR(255) | | 前端路由 |
| icon | VARCHAR(100) | | 图标 |
| sort_order | INT | NOT NULL | 排序 |
| is_visible | TINYINT(1) | NOT NULL | 是否展示 |
| status | TINYINT(1) | NOT NULL | 1/0 |
| description | TEXT | | 描述 |
| meta | JSON | | 扩展属性 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
### 2.2 `sys_role_permission` 角色-权限关联表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| id | INT | PK, AUTO_INCREMENT | 关联ID |
| role_id | INT | INDEX, NOT NULL | 角色ID |
| perm_id | INT | INDEX, NOT NULL | 权限ID |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
| | | UNIQUE(role_id, perm_id) | 唯一约束 |
## 3. 码表
### 3.1 `sys_dict_type` 码表类型
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| dict_type_id | INT | PK, AUTO_INCREMENT | 类型ID |
| type_code | VARCHAR(50) | UNIQUE, NOT NULL | 类型编码 |
| type_name | VARCHAR(50) | NOT NULL | 类型名称 |
| status | TINYINT(1) | NOT NULL | 1/0 |
| remark | TEXT | | 备注 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
### 3.2 `sys_dict_item` 码表项
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| dict_item_id | INT | PK, AUTO_INCREMENT | 明细ID |
| type_code | VARCHAR(50) | INDEX, NOT NULL | 类型编码 |
| item_label | VARCHAR(100) | NOT NULL | 展示值 |
| item_value | VARCHAR(100) | NOT NULL | 存储值 |
| sort_order | INT | NOT NULL | 排序 |
| status | TINYINT(1) | NOT NULL | 1/0 |
| remark | TEXT | | 备注 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
| | | UNIQUE(type_code, item_value) | 唯一约束 |
## 4. 系统参数
### 4.1 `sys_param` 系统参数表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| param_id | INT | PK, AUTO_INCREMENT | 参数ID |
| param_key | VARCHAR(100) | UNIQUE, NOT NULL | 参数键 |
| param_value | TEXT | NOT NULL | 参数值 |
| param_type | VARCHAR(20) | NOT NULL | string/int/bool/json |
| status | TINYINT(1) | NOT NULL | 1/0 |
| is_system | TINYINT(1) | NOT NULL | 是否系统级 |
| description | TEXT | | 描述 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
## 5. 日志
### 5.1 `sys_log` 操作日志表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| id | BIGINT | PK, AUTO_INCREMENT | 日志ID |
| user_id | INT | INDEX | 操作用户ID |
| username | VARCHAR(50) | | 用户名 |
| operation_type | VARCHAR(50) | NOT NULL | 操作类型 |
| resource_type | VARCHAR(50) | NOT NULL | 资源类型 |
| resource_id | BIGINT | INDEX | 资源ID |
| detail | TEXT | | 操作详情(JSON) |
| ip_address | VARCHAR(50) | | IP地址 |
| user_agent | VARCHAR(500) | | 用户代理 |
| status | TINYINT | DEFAULT 1 | 状态: 1成功/0失败 |
| error_message | TEXT | | 错误信息 |
| created_at | DATETIME | NOT NULL | 操作时间 |
## 6. 业务 - 提示词管理
### 6.1 `biz_prompt_template` 提示词模板表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| id | INT | PK, AUTO_INCREMENT | 模板ID |
| name | VARCHAR(100) | NOT NULL | 模板名称 |
| category | VARCHAR(50) | NOT NULL | 分类 |
| content | TEXT | NOT NULL | 提示词内容 |
| description | VARCHAR(255) | | 描述 |
| user_id | INT | INDEX | 创建者ID (系统级为NULL) |
| is_system | TINYINT(1) | NOT NULL | 是否系统内置 |
| status | TINYINT(1) | NOT NULL | 全局状态1启用 / 0禁用 |
| sort_order | INT | NOT NULL | 默认排序 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
### 6.2 `biz_user_prompt_config` 用户提示词配置表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| id | INT | PK, AUTO_INCREMENT | 配置ID |
| user_id | INT | INDEX, NOT NULL | 用户ID |
| template_id | INT | INDEX, NOT NULL | 模板ID |
| is_active | TINYINT(1) | NOT NULL | 用户是否启用 |
| user_sort_order | INT | NOT NULL | 用户自定义排序 |
| updated_at | DATETIME | NOT NULL | 修改时间 |
| | | UNIQUE(user_id, template_id) | 唯一约束 |
## 7. 业务 - 会议管理
### 7.1 `biz_meeting` 会议主表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| meeting_id | INT | PK, AUTO_INCREMENT | 会议ID |
| user_id | INT | | 创建者ID |
| title | VARCHAR(255) | NOT NULL | 会议标题 |
| tags | VARCHAR(255) | | 标签(逗号分隔) |
| meeting_time | TIMESTAMP | | 会议时间 |
| access_password| VARCHAR(10) | | 访问密码 |
| status | VARCHAR(20) | DEFAULT 'draft' | 状态: draft, transcribing, summarizing, completed |
| summary | TEXT | | 最终总结内容 |
| created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
| updated_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 更新时间 |
### 7.2 `biz_meeting_attendees` 会议参会人表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| attendee_id | INT | PK, AUTO_INCREMENT | 参会ID |
| meeting_id | INT | INDEX | 会议ID |
| user_id | INT | | 系统用户ID |
### 7.3 `biz_meeting_audio` 会议音频表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| audio_id | INT | PK, AUTO_INCREMENT | 音频ID |
| meeting_id | INT | | 会议ID |
| file_path | VARCHAR(512) | NOT NULL | 文件存储路径 |
| file_name | VARCHAR(200) | | 原始文件名 |
| file_size | DECIMAL(10,0) | | 文件大小(字节) |
| duration | INT | DEFAULT 0 | 音频时长(秒) |
| processing_status| VARCHAR(20) | DEFAULT 'uploaded' | 处理状态 |
| upload_time | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 上传时间 |
| error_message | TEXT | | 错误信息 |
### 7.4 `biz_transcript_task` 转译任务表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| task_id | VARCHAR(255) | PK | 任务ID |
| meeting_id | INT | INDEX, NOT NULL | 会议ID |
| model_id | INT | | 模型配置ID (关联 biz_ai_model) |
| language | VARCHAR(10) | DEFAULT 'auto' | 识别语言 |
| status | ENUM | INDEX, DEFAULT 'pending' | pending/processing/completed/failed |
| progress | INT | DEFAULT 0 | 处理进度(0-100) |
| completed_at | TIMESTAMP | | 完成时间 |
| error_message | TEXT | | 错误信息 |
| created_at | TIMESTAMP | INDEX, DEFAULT CURRENT_TIMESTAMP | 创建时间 |
### 7.5 `biz_transcript_segment` 转译片段表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| segment_id | INT | PK, AUTO_INCREMENT | 片段ID |
| meeting_id | INT | | 会议ID |
| audio_id | INT | | 音频ID |
| speaker_id | INT | | 发言人ID |
| speaker_tag | VARCHAR(50) | | 发言人标签(如: A, B) |
| start_time_ms | INT | NOT NULL | 开始时间(毫秒) |
| end_time_ms | INT | NOT NULL | 结束时间(毫秒) |
| text_content | TEXT | NOT NULL | 文本内容 |
### 7.6 `biz_summarize_task` 总结任务表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| task_id | VARCHAR(100) | PK | 任务ID |
| meeting_id | INT | INDEX, NOT NULL | 会议ID |
| prompt_id | INT | | 使用的提示词模板ID |
| model_id | INT | | 模型配置ID (关联 biz_ai_model) |
| user_prompt | TEXT | | 任务执行时的最终Prompt |
| status | VARCHAR(50) | INDEX, DEFAULT 'pending' | 任务状态 |
| progress | INT | DEFAULT 0 | 进度 |
| result | TEXT | | 总结结果 |
| error_message | TEXT | | 错误信息 |
| created_at | TIMESTAMP | INDEX, DEFAULT CURRENT_TIMESTAMP | 创建时间 |
| completed_at | TIMESTAMP | | 完成时间 |
### 7.7 `biz_ai_model` AI 模型配置表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| model_id | INT | PK, AUTO_INCREMENT | 模型配置ID |
| model_type | VARCHAR(20) | NOT NULL | asr/llm |
| provider | VARCHAR(50) | NOT NULL | 提供商 (Qwen, OpenAI等) |
| model_name | VARCHAR(100) | NOT NULL | 模型标识 |
| api_key | VARCHAR(255) | | API密钥 |
| base_url | VARCHAR(255) | | 基础URL |
| api_path | VARCHAR(100) | | 接口路径 |
| config | JSON | | 差异化参数(temp, top_p等) |
| is_default | TINYINT(1) | NOT NULL | 是否默认 |
| status | TINYINT(1) | NOT NULL | 启用状态 |
| created_at | TIMESTAMP | NOT NULL | 创建时间 |
| updated_at | TIMESTAMP | NOT NULL | 更新时间 |
## 7. 业务 - 会议管理
### 7.1 `biz_meeting` 会议主表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| meeting_id | INT | PK, AUTO_INCREMENT | 会议ID |
| user_id | INT | | 创建者ID |
| title | VARCHAR(255) | NOT NULL | 会议标题 |
| tags | VARCHAR(255) | | 标签(逗号分隔) |
| meeting_time | TIMESTAMP | | 会议时间 |
| access_password| VARCHAR(10) | | 访问密码 |
| summary | TEXT | | 最终总结内容 |
| created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
| updated_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 更新时间 |
### 7.2 `biz_meeting_attendees` 会议参会人表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| attendee_id | INT | PK, AUTO_INCREMENT | 参会ID |
| meeting_id | INT | INDEX | 会议ID |
| user_id | INT | | 系统用户ID |
### 7.3 `biz_meeting_audio` 会议音频表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| audio_id | INT | PK, AUTO_INCREMENT | 音频ID |
| meeting_id | INT | | 会议ID |
| file_path | VARCHAR(512) | NOT NULL | 文件存储路径 |
| file_name | VARCHAR(200) | | 原始文件名 |
| file_size | DECIMAL(10,0) | | 文件大小(字节) |
| processing_status| VARCHAR(20) | DEFAULT 'uploaded' | 处理状态 |
| upload_time | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 上传时间 |
| error_message | TEXT | | 错误信息 |
### 7.4 `biz_transcript_task` 转译任务表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| task_id | VARCHAR(255) | PK | 任务ID |
| meeting_id | INT | INDEX, NOT NULL | 会议ID |
| status | ENUM | INDEX, DEFAULT 'pending' | pending/processing/completed/failed |
| progress | INT | DEFAULT 0 | 处理进度(0-100) |
| completed_at | TIMESTAMP | | 完成时间 |
| error_message | TEXT | | 错误信息 |
| created_at | TIMESTAMP | INDEX, DEFAULT CURRENT_TIMESTAMP | 创建时间 |
### 7.5 `biz_transcript_segment` 转译片段表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| segment_id | INT | PK, AUTO_INCREMENT | 片段ID |
| meeting_id | INT | | 会议ID |
| speaker_id | INT | | 发言人ID |
| speaker_tag | VARCHAR(50) | | 发言人标签(如: A, B) |
| start_time_ms | INT | NOT NULL | 开始时间(毫秒) |
| end_time_ms | INT | NOT NULL | 结束时间(毫秒) |
| text_content | TEXT | NOT NULL | 文本内容 |
### 7.6 `biz_summarize_task` 总结任务表
| 字段 | 类型 | 约束 | 说明 |
| --- | --- | --- | --- |
| task_id | VARCHAR(100) | PK | 任务ID |
| meeting_id | INT | INDEX, NOT NULL | 会议ID |
| prompt_id | INT | | 使用的提示词模板ID |
| user_prompt | TEXT | | 任务执行时的最终Prompt |
| status | VARCHAR(50) | INDEX, DEFAULT 'pending' | 任务状态 |
| progress | INT | DEFAULT 0 | 进度 |
| result | TEXT | | 总结结果 |
| error_message | TEXT | | 错误信息 |
| created_at | TIMESTAMP | INDEX, DEFAULT CURRENT_TIMESTAMP | 创建时间 |
| completed_at | TIMESTAMP | | 完成时间 |