201 lines
4.6 KiB
Markdown
201 lines
4.6 KiB
Markdown
# AR03 — 数据库架构
|
|
|
|
> 状态:当前有效
|
|
> 最后更新:2026-09-21
|
|
>
|
|
> 说明:
|
|
> 本文档描述当前数据库的真实分层与主对象。
|
|
> 历史培训系统版本已归档至 `Historical_Records/AR03_数据库架构-培训系统旧稿.md`。
|
|
|
|
---
|
|
|
|
## 1. 当前数据库定位
|
|
|
|
当前数据库承载的是一套**对象定义 + 任务运行 + 知识底座 + 兼容业务域**并存的单库模型。
|
|
|
|
数据库当前仍使用:
|
|
|
|
- SQLite 单文件
|
|
- GORM AutoMigrate
|
|
- 单体部署
|
|
|
|
这套数据库一方面支撑当前平台的新主轴,另一方面也兼容尚未完全迁出的历史业务域。
|
|
|
|
## 2. 当前数据库结构总览
|
|
|
|
当前数据库可以按五个域来理解:
|
|
|
|
1. 对象定义域
|
|
2. 任务运行域
|
|
3. 知识与素材域
|
|
4. 组织治理域
|
|
5. 兼容业务域
|
|
|
|
## 3. 对象定义域
|
|
|
|
当前数据库已经形成一批稳定对象定义表。
|
|
|
|
### 3.1 专家对象
|
|
|
|
当前实现表:
|
|
|
|
- `specialist`
|
|
|
|
说明:
|
|
|
|
- 代码仍使用 `specialist`
|
|
- 文档统一口径应理解为专家对象
|
|
|
|
### 3.2 技能对象
|
|
|
|
当前实现表:
|
|
|
|
- `skill_definition`
|
|
|
|
这张表承载:
|
|
|
|
- 技能元数据
|
|
- 输入输出 schema
|
|
- starter prompts
|
|
- action refs
|
|
- policy refs
|
|
- object entry route
|
|
|
|
### 3.3 App 对象
|
|
|
|
当前实现表:
|
|
|
|
- `xapp_definition`
|
|
- `user_xapp_center`
|
|
|
|
说明:
|
|
|
|
- 文档统一口径为 `App`
|
|
- 当前落库命名仍是 `xapp`
|
|
- `xapp_definition` 当前定义的是成品入口壳对象,不等于任务运行主记录
|
|
|
|
### 3.4 Action 对象
|
|
|
|
当前实现表:
|
|
|
|
- `action_definition`
|
|
|
|
这张表承接原子执行动作,是技能编排与任务执行的底层动作定义。
|
|
|
|
## 4. 任务运行域
|
|
|
|
当前数据库的运行主轴已经切到任务。
|
|
|
|
核心表包括:
|
|
|
|
- `task_record`
|
|
- `task_run`
|
|
- `task_artifact`
|
|
- `project`
|
|
|
|
这组表的职责分别是:
|
|
|
|
- `task_record`:任务实例
|
|
- `task_run`:执行过程记录
|
|
- `task_artifact`:任务产物
|
|
- `project`:任务容器
|
|
|
|
这说明当前平台的运行中心是任务实例及其产物。
|
|
|
|
这里需要明确补上一条:
|
|
|
|
- `task_record` 当前以 `specialist_key` 为主要执行挂载点
|
|
- 当前数据库层的运行主语仍然是 specialist-driven task
|
|
- `xapp_definition` 与 `user_xapp_center` 承接的是对象目录和入口壳,而不是运行主键
|
|
|
|
## 5. 知识与素材域
|
|
|
|
当前知识底座相关核心表包括:
|
|
|
|
- `knowledge_space`
|
|
- `knowledge_source`
|
|
- `knowledge_chunk`
|
|
- `knowledge_faq`
|
|
- `media_file`
|
|
- `study_note`
|
|
|
|
这一域负责:
|
|
|
|
- 组织知识空间
|
|
- 素材来源管理
|
|
- 文本切片
|
|
- FAQ 组织
|
|
- 文件审批与导入
|
|
- 用户知识笔记
|
|
|
|
知识库是当前数据库中的平台基础域之一。
|
|
|
|
## 6. 组织治理域
|
|
|
|
当前组织治理相关表包括:
|
|
|
|
- `user`
|
|
- `department`
|
|
- `position`
|
|
- `position_knowledge`
|
|
- `position_exam_blueprint`
|
|
- `system_config`
|
|
- `ai_call_log`
|
|
|
|
这一层负责:
|
|
|
|
- 用户与组织
|
|
- 岗位应学和蓝图
|
|
- 系统配置
|
|
- AI 调用留痕
|
|
|
|
这说明当前系统已不只是“员工读资料”,而是有完整组织治理与审计需求。
|
|
|
|
## 7. 兼容业务域
|
|
|
|
当前数据库中仍保留一批培训系统时期延续下来的业务表:
|
|
|
|
- `product`
|
|
- `course`
|
|
- `question`
|
|
- `exam_paper`
|
|
- `exam_record`
|
|
- `certificate`
|
|
- `mistake_record`
|
|
- `learning_progress`
|
|
- `point_event`
|
|
|
|
这些表当前承接平台内仍在运行的业务域,其中相当一部分会继续向 App、任务和知识底座收敛。
|
|
|
|
## 8. 当前数据库的真实形态
|
|
|
|
当前数据库是**以任务与对象为中心、同时承接历史培训/考试业务域的混合态单库。**
|
|
|
|
这是当前最准确、也最适合指导后续整理的描述。
|
|
|
|
## 9. 当前命名映射
|
|
|
|
当前数据库存在少量术语过渡:
|
|
|
|
- `specialist` 对应文档中的 `专家`
|
|
- `xapp_definition` 对应文档中的 `App`
|
|
- `task_record.specialist_key` 对应当前运行主语
|
|
|
|
后续文档应统一按业务口径解释,但在涉及真实表结构时必须保留当前落库名。
|
|
|
|
## 10. 当前数据库设计原则
|
|
|
|
后续数据库演进应继续遵守:
|
|
|
|
1. 对象定义表与运行记录表分离
|
|
2. 任务和项目继续作为运行中心
|
|
3. 知识域继续作为基础域保留
|
|
4. 培训/考试类业务表可以继续存在,但不再主导总架构描述
|
|
5. 新增对象优先进入对象定义域,而不是继续堆入旧业务表
|
|
|
|
## 11. 与其他文档的关系
|
|
|
|
- 详细表结构以 `docs/04_Backend/01_平台治理底座/BG04_数据库总览.md` 为准
|
|
- 当前对象与任务口径以 `docs/01_System_Overall/SY21_统一角色技能动作架构.md`、`docs/01_System_Overall/SY22_角色技能应用统一任务架构.md` 为准
|
|
- 当前后端代码分域,以 `docs/02_Architecture/AR01_后端架构.md` 为准
|