diff --git a/数据库设计/9.模块一致性校验.md b/数据库设计/9.模块一致性校验.md new file mode 100644 index 0000000..7265084 --- /dev/null +++ b/数据库设计/9.模块一致性校验.md @@ -0,0 +1,79 @@ +# 模块一致性校验 + +## 1. 校验范围 + +本次校验覆盖: + +- `需求分析/` +- `设计文档/` +- `数据库设计/` +- `前端实现文档/` +- `后端实现文档/` +- `script/sql/*.sql` +- `docs/MODEL_PROVIDER_SCHEMA.sql` +- `docs/STUDIO_PROTOTYPE_SCHEMA.sql` + +## 2. 文档占位检查 + +已检查常见未决占位关键词,当前新增文档与 SQL 脚本中未保留未决占位。 + +## 3. 数据库脚本一致性 + +| 模块 | 汇总 schema | 模块化脚本 | 结论 | +|------|-------------|------------|------| +| 模型与路由 | `docs/MODEL_PROVIDER_SCHEMA.sql` | `script/sql/model_provider.sql` | 已补齐 `rag_store_model_config.store_id` 外键 | +| Studio 项目 | `docs/STUDIO_PROTOTYPE_SCHEMA.sql` | `script/sql/studio_project.sql` | 表、唯一约束、索引一致 | +| Workflow | `docs/STUDIO_PROTOTYPE_SCHEMA.sql` | `script/sql/workflow.sql` | 定义、版本、运行、步骤表一致 | +| Agent 会话 | `docs/STUDIO_PROTOTYPE_SCHEMA.sql` | `script/sql/agent_session.sql` | 会话和消息表一致 | +| 能力绑定 | `docs/STUDIO_PROTOTYPE_SCHEMA.sql` | `script/sql/agent_capability_binding.sql` | 唯一约束和索引一致 | +| MCP | `docs/STUDIO_PROTOTYPE_SCHEMA.sql` | `script/sql/mcp.sql` | Server 与 Capability 表一致 | +| Skill | `docs/STUDIO_PROTOTYPE_SCHEMA.sql` | `script/sql/skill.sql` | 定义与版本表一致 | + +## 4. 枚举一致性 + +`script/sql/studio_enum.sql` 保持 `sys_enum` 既有格式: + +- `catalog` +- `type` +- `name` +- `value` +- `strvalue` +- `sort` +- `version` +- `remark` + +校验结果: + +- 枚举行数:48。 +- 枚举组数:14。 +- 同一 `catalog + type` 下 `value` 无重复。 +- 同一 `catalog + type` 下 `sort` 无重复。 + +## 5. 跨模块依赖检查 + +| 依赖 | 结论 | +|------|------| +| 知识资产依赖系统附件 | `rag_document.attachment_id` 引用 `sys_attachment` 的设计保持不变 | +| 知识资产依赖模型配置 | `rag_store_model_config` 连接 `rag_store` 与 `model_config` | +| Workflow 依赖 Agent | `workflow_definition.bound_agent_id` 引用 `agent_definition` | +| Workflow 运行依赖 Agent | `workflow_run.agent_id` 引用 `agent_definition` | +| Agent 会话依赖 Workflow 运行 | `agent_session.workflow_run_id` 引用 `workflow_run` | +| MCP/Skill 依赖能力绑定 | `agent_capability_binding` 通过类型和 ID 绑定能力 | +| 运行观测依赖运行日志 | 复用 `workflow_run`、`workflow_run_step`、`model_call_log`、`agent_session` | + +## 6. 保留约束 + +- 不修改 `sys_enum` 表结构。 +- 不修改 `PersistableSysEnumDefinition` 枚举契约。 +- 不把结构化枚举协议从整型值改为字符串值。 +- 本轮不修改 Java、Vue 或测试代码。 + +## 7. 后续实现提示 + +后续按文档重写代码时,新增 Java 枚举必须补齐: + +- Java 枚举类。 +- `SysEnumDataInitTests` 初始化入口。 +- `EnumDefinitionTests` 稳定性断言。 +- `script/sql/studio_enum.sql` 初始化数据。 +- 前端字典或常量映射。