Files
SuperBizAgent-java/mvp

数据库设计文档

当前架构快照:mvp/architecture/current-mvp-architecture.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 创建数据库

-- 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

// 创建 Collection
MilvusClientFactory.createCollection();

4.3 配置 Redis

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 文档
  • 重大变更需记录在版本历史中