**变更概述:** - 将 MVP 架构设计文档独立到项目根目录 `mvp/` - 整理 `docs/` 为纯学习和分析文档目录 - 按类型分类:learning(学习)、analysis(分析)、reports(报告)、guides(指南) **目录结构:** ``` mvp/ # MVP 架构设计(独立) ├── README.md # 数据库设计总览 ├── architecture/ # 架构文档 │ ├── agent-architecture-mvp.md │ ├── implementation-plan.md │ └── ... └── tables/ # 数据表设计 docs/ # 学习和分析文档 ├── learning/ # 学习笔记(00-08 编号) ├── analysis/ # 分析笔记 + 重构计划 ├── reports/ # 临时报告 └── guides/ # 指南文档 ``` **详细变更:** - docs/README.md → mvp/README.md(数据库设计入口) - docs/architecture/ → mvp/architecture/(架构设计) - docs/tables/ → mvp/tables/(数据表设计) - docs/学习笔记-*.md → docs/learning/07-*.md, 08-*.md - docs/项目学习路径.md → docs/learning/00-*.md - docs/功能分析报告.md → docs/analysis/ - docs/修复报告-*.md → docs/reports/ - docs/日志配置*.md → docs/guides/ 或 docs/reports/ - docs/design/ → docs/analysis/(问题分析和重构计划)
156 lines
4.0 KiB
Markdown
156 lines
4.0 KiB
Markdown
# 数据库设计文档
|
|
|
|
## 📚 文档导航
|
|
|
|
### 核心表设计
|
|
- [diagnosis_record](tables/diagnosis_record.md) - 诊断记录表(核心)
|
|
- [case_library](tables/case_library.md) - 案例库表
|
|
- [api_document](tables/api_document.md) - 文档元数据表
|
|
|
|
### 架构设计
|
|
- [Agent 架构设计](architecture/agent-architecture.md) - Agent 协作 + Skill + Harness
|
|
- [会话管理](architecture/session-management.md) - Redis + MySQL 会话管理
|
|
- [实施规划](architecture/implementation-plan.md) - 分阶段实施计划
|
|
|
|
---
|
|
|
|
## 一、设计原则
|
|
|
|
### 1.1 核心原则
|
|
- ✅ **简单优先**:满足诊断流程需要,避免过度设计
|
|
- ✅ **渐进增强**:先实现核心功能,再逐步扩展
|
|
- ✅ **数据分离**:诊断结果持久化(MySQL),会话上下文临时化(Redis)
|
|
- ✅ **适度冗余**:避免过度范式化,适当冗余提升查询性能
|
|
|
|
### 1.2 系统定位
|
|
**自动化诊断系统**
|
|
- 核心:一键诊断 → 返回完整报告
|
|
- 辅助:支持追问,但不是主要场景
|
|
- 特点:大部分用户单次诊断即结束,少数用户会追问细节
|
|
|
|
---
|
|
|
|
## 二、表结构总览
|
|
|
|
### 2.1 核心表关系
|
|
|
|
```
|
|
┌─────────────────────┐
|
|
│ diagnosis_record │ 诊断记录(核心)
|
|
│ - 每次诊断一条 │
|
|
└──────────┬──────────┘
|
|
│ 1:1
|
|
↓
|
|
┌─────────────────────┐
|
|
│ case_library │ 案例库(知识沉淀)
|
|
│ - 诊断成功→案例 │
|
|
└─────────────────────┘
|
|
|
|
┌─────────────────────┐
|
|
│ api_document │ 文档元数据(管理层)
|
|
│ - 状态追踪/去重 │
|
|
└──────────┬──────────┘
|
|
│ doc_id
|
|
↓
|
|
┌─────────────────────┐
|
|
│ Milvus │ 文档内容(检索层)
|
|
│ - 向量检索 │
|
|
└─────────────────────┘
|
|
|
|
┌─────────────────────┐
|
|
│ Redis Session │ 会话管理(临时)
|
|
│ - 30分钟过期 │
|
|
│ - 支持追问 │
|
|
└─────────────────────┘
|
|
```
|
|
|
|
### 2.2 表统计
|
|
|
|
| 表名 | 类型 | 预估数据量 | 用途 |
|
|
|------|------|-----------|------|
|
|
| diagnosis_record | 核心 | 3.6万/年 | 诊断记录 |
|
|
| case_library | 核心 | 500-1000 | 案例库 |
|
|
| api_document | 核心 | 100-200 | 文档管理 |
|
|
|
|
---
|
|
|
|
## 三、技术栈
|
|
|
|
### 3.1 数据存储
|
|
```
|
|
MySQL 8.0+
|
|
├─ 元数据管理
|
|
├─ 事务支持
|
|
└─ JSON 字段支持
|
|
|
|
Redis 6.0+
|
|
├─ 会话存储
|
|
├─ 缓存
|
|
└─ TTL 自动过期
|
|
|
|
Milvus 2.6+
|
|
├─ 向量存储
|
|
├─ 语义检索
|
|
└─ 混合检索
|
|
```
|
|
|
|
### 3.2 开发框架
|
|
```
|
|
Spring Boot 3.2
|
|
Spring AI Alibaba 1.1.0
|
|
Milvus SDK Java 2.6.10
|
|
DashScope SDK
|
|
```
|
|
|
|
---
|
|
|
|
## 四、快速开始
|
|
|
|
### 4.1 创建数据库
|
|
|
|
```sql
|
|
-- 1. 创建数据库
|
|
CREATE DATABASE diagnosis_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- 2. 执行建表脚本(按顺序)
|
|
SOURCE tables/diagnosis_record.sql;
|
|
SOURCE tables/case_library.sql;
|
|
SOURCE tables/api_document.sql;
|
|
```
|
|
|
|
### 4.2 初始化 Milvus
|
|
|
|
```java
|
|
// 创建 Collection
|
|
MilvusClientFactory.createCollection();
|
|
```
|
|
|
|
### 4.3 配置 Redis
|
|
|
|
```yaml
|
|
spring:
|
|
redis:
|
|
host: localhost
|
|
port: 6379
|
|
database: 0
|
|
```
|
|
|
|
---
|
|
|
|
## 五、版本历史
|
|
|
|
| 版本 | 日期 | 变更内容 |
|
|
|------|------|---------|
|
|
| v1.0 | 2024-06-15 | 初版,定义核心表结构 |
|
|
| v2.0 | 2024-06-15 | diagnosis_record 字段泛化,支持多种故障类型 |
|
|
| v2.1 | 2024-06-22 | 文档拆分,增加 api_document 表 |
|
|
|
|
---
|
|
|
|
## 六、维护说明
|
|
|
|
- 每个表的详细设计在 `tables/` 目录下
|
|
- 架构设计文档在 `architecture/` 目录下
|
|
- 修改表结构时,同步更新对应的 Markdown 文档
|
|
- 重大变更需记录在版本历史中
|