# 数据库结构文档 (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 | | 完成时间 |