# 数据库全局视图

> **目的：** 提供所有Schema和表的快速索引，便于查找和理解全局数据架构  
> **详细设计：** 请查看各模块的 `01-数据库设计.md`  
> **数据库：** PostgreSQL 15+  
> **最后更新：** 2025-11-06

---

## 📊 Schema划分策略

### Schema隔离原则 ⭐

**为什么需要Schema隔离：**
1. ✅ **模块独立性**：每个业务模块有独立的Schema
2. ✅ **支持独立部署**：可以单独导出某个模块的数据
3. ✅ **权限隔离**：可以为不同Schema设置不同权限
4. ✅ **避免命名冲突**：不同模块可以有相同的表名

**Schema命名规范：**
```
platform_schema    # 平台基础层（全局共享）
aia_schema         # AI智能问答
asl_schema         # AI智能文献
pkb_schema         # 个人知识库
dc_schema          # 数据清洗整理
ssa_schema         # 智能统计分析
st_schema          # 统计分析工具
rvw_schema         # 稿件审查系统
admin_schema       # 运营管理端（可选，可合并到platform_schema）
```

---

## 📋 Schema一览表

| Schema | 说明 | 表数量 | 状态 | 详细设计 |
|--------|------|--------|------|---------|
| **platform_schema** | 平台基础层 | ~15个 | ✅ 使用中 | [查看](#platform_schema-平台基础层) |
| **aia_schema** | AI智能问答 | ~8个 | ✅ 使用中 | [查看](#aia_schema-ai智能问答) |
| **pkb_schema** | 个人知识库 | ~5个 | ✅ 使用中 | [查看](#pkb_schema-个人知识库) |
| **rvw_schema** | 稿件审查系统 | ~6个 | ✅ 使用中 | [查看](#rvw_schema-稿件审查系统) |
| **asl_schema** | AI智能文献 | ~10个 | ⏳ 设计中 | [ASL/01-数据库设计](../03-业务模块/ASL-AI智能文献/01-数据库设计.md) |
| **dc_schema** | 数据清洗整理 | ~8个 | ⏳ 规划中 | 待设计 |
| **ssa_schema** | 智能统计分析 | ~10个 | ⏳ 规划中 | 待设计 |
| **st_schema** | 统计分析工具 | ~5个 | ⏳ 规划中 | 待设计 |

**总表数：** ~70个（预估）

---

## 🔍 platform_schema（平台基础层）

**职责：** 存储全局共享的平台数据，所有业务模块都依赖

**详细设计：** [UAM/01-数据库设计](../01-平台基础层/01-用户与权限中心(UAM)/01-数据库设计.md)

### 核心表（用户与权限）

| 表名 | 说明 | 记录数预估 | 详细设计 |
|------|------|-----------|---------|
| **users** | 用户基础信息 | 10万/年 | [UAM/01-数据库设计](../01-平台基础层/01-用户与权限中心(UAM)/01-数据库设计.md) |
| **roles** | 角色定义 | <100 | 同上 |
| **permissions** | 权限定义 | <500 | 同上 |
| **user_roles** | 用户-角色关联 | 10万/年 | 同上 |
| **feature_flags** | Feature Flag配置 ⭐ | <100 | 同上 |
| **user_feature_flags** | 用户-Feature Flag关联 ⭐ | 10万/年 | 同上 |

### LLM相关表

| 表名 | 说明 | 记录数预估 | 详细设计 |
|------|------|-----------|---------|
| **llm_models** | LLM模型配置 | <20 | [LLM网关/01-数据库设计](../02-通用能力层/01-LLM大模型网关/01-数据库设计.md) |
| **llm_usage** | LLM使用记录 ⭐ | 1000万/年 | 同上 |
| **llm_quotas** | LLM配额管理 | 10万/年 | 同上 |

### 监控与日志

| 表名 | 说明 | 记录数预估 | 详细设计 |
|------|------|-----------|---------|
| **admin_logs** | 管理员操作日志 | 10万/年 | [监控与日志/01-数据库设计](../01-平台基础层/04-监控与日志/01-数据库设计.md) |
| **error_logs** | 错误日志 | 100万/年 | 同上 |
| **audit_logs** | 审计日志 | 100万/年 | 同上 |

### 系统配置

| 表名 | 说明 | 记录数预估 | 详细设计 |
|------|------|-----------|---------|
| **system_configs** | 系统配置 | <100 | [系统配置/01-数据库设计](../01-平台基础层/05-系统配置/01-数据库设计.md) |
| **prompt_templates** | Prompt模板 | <500 | 同上 |
| **announcements** | 系统公告 | <1000 | 同上 |

---

## 🤖 aia_schema（AI智能问答）

**职责：** 存储AI智能问答相关数据（12个智能体、对话历史）

**状态：** ✅ 已实现  
**详细设计：** [AIA/01-数据库设计](../03-业务模块/AIA-AI智能问答/01-数据库设计.md)（待创建）

### 核心表

| 表名 | 说明 | 记录数预估 |
|------|------|-----------|
| **conversations** | 对话会话 | 100万/年 |
| **messages** | 对话消息 | 1000万/年 |
| **agents** | 智能体配置 | <20 |
| **conversation_contexts** | 对话上下文 | 100万/年 |

---

## 📚 pkb_schema（个人知识库）

**职责：** 存储个人知识库、文档、RAG问答相关数据

**状态：** ✅ 已实现  
**详细设计：** [PKB/01-数据库设计](../03-业务模块/PKB-个人知识库/01-数据库设计.md)（待创建）

### 核心表

| 表名 | 说明 | 记录数预估 |
|------|------|-----------|
| **knowledge_bases** | 知识库 | 30万/年 |
| **documents** | 文档 | 300万/年 |
| **document_chunks** | 文档分块（向量化） | 3000万/年 |
| **kb_conversations** | 知识库对话 | 100万/年 |
| **kb_messages** | 知识库对话消息 | 1000万/年 |

---

## 📄 rvw_schema（稿件审查系统）

**职责：** 存储稿件审查、评估报告相关数据

**状态：** ✅ 已实现（独立系统）  
**详细设计：** [RVW/01-数据库设计](../03-业务模块/RVW-稿件审查系统/01-数据库设计.md)（待创建）

### 核心表

| 表名 | 说明 | 记录数预估 |
|------|------|-----------|
| **review_tasks** | 审查任务 | 10万/年 |
| **manuscripts** | 稿件信息 | 10万/年 |
| **review_results** | 审查结果 | 10万/年 |
| **methodology_assessments** | 方法学评估 | 10万/年 |
| **guideline_assessments** | 稿约规范性评估 | 10万/年 |

---

## 📖 asl_schema（AI智能文献）

**职责：** 存储文献筛选、提取、分析相关数据

**状态：** ⏳ 设计中（P0优先级）  
**详细设计：** [ASL/01-数据库设计](../03-业务模块/ASL-AI智能文献/01-数据库设计.md)

### 核心表（预览）

| 表名 | 说明 | 记录数预估 |
|------|------|-----------|
| **literature_projects** | 文献项目 | 10万/年 |
| **literature_items** | 文献条目 | 1000万/年 |
| **pico_configs** | PICO纳入排除标准 | 10万/年 |
| **screening_results** | 筛选结果 | 1000万/年 |
| **screening_history** | 筛选历史（可回溯） | 1000万/年 |
| **extraction_tasks** | 提取任务 | 100万/年 |
| **extraction_results** | 提取结果 | 100万/年 |

---

## 🧹 dc_schema（数据清洗整理）

**职责：** 存储数据清洗任务、ETL配置、NER结果

**状态：** ⏳ 规划中（P1优先级）  
**详细设计：** 待设计

### 核心表（预览）

| 表名 | 说明 | 记录数预估 |
|------|------|-----------|
| **cleaning_projects** | 清洗项目 | 10万/年 |
| **data_sources** | 数据源 | 100万/年 |
| **etl_configs** | ETL配置 | 10万/年 |
| **ner_tasks** | NER任务 | 100万/年 |
| **ner_results** | NER结果 | 1000万/年 |

---

## 🔗 跨Schema依赖关系

### 依赖规则 ⭐ 重要

**允许的依赖：**
```
✅ 业务模块 → platform_schema（允许外键）
✅ 通用能力 → platform_schema（允许外键）
❌ 业务模块之间（禁止直接依赖）
❌ platform_schema → 业务模块（反向依赖）
```

### 依赖关系图

```
platform_schema.users (1)
    ↓ (N) 所有业务模块都依赖用户表
    ├── aia_schema.conversations
    ├── asl_schema.literature_projects
    ├── pkb_schema.knowledge_bases
    ├── dc_schema.cleaning_projects
    ├── ssa_schema.analysis_projects
    ├── st_schema.tool_usage
    └── rvw_schema.review_tasks

platform_schema.llm_usage (独立)
    - 记录所有模块的LLM调用
    - 通过module字段区分：'AIA', 'ASL', 'PKB'等
```

### 外键示例

```sql
-- ✅ 允许：业务模块引用platform_schema
CREATE TABLE asl_schema.literature_projects (
  id SERIAL PRIMARY KEY,
  user_id INTEGER REFERENCES platform_schema.users(id) ON DELETE CASCADE
);

-- ❌ 禁止：业务模块之间互相引用
CREATE TABLE ssa_schema.analysis_projects (
  id SERIAL PRIMARY KEY,
  -- 错误：不能引用其他业务模块
  literature_project_id INTEGER REFERENCES asl_schema.literature_projects(id)
);

-- ✅ 正确做法：通过user_id关联
-- 在应用层处理跨模块关联，不在数据库层
```

---

## 📊 数据量统计（预估）

### 按Schema统计

| Schema | 表数量 | 年增长记录数 | 存储预估（5年） |
|--------|--------|------------|---------------|
| platform_schema | 15 | 1000万 | 50GB |
| aia_schema | 8 | 1100万 | 30GB |
| pkb_schema | 5 | 3300万 | 200GB（向量） |
| rvw_schema | 6 | 50万 | 5GB |
| asl_schema | 10 | 2100万 | 50GB |
| dc_schema | 8 | 1100万 | 100GB |
| ssa_schema | 10 | 500万 | 50GB |
| st_schema | 5 | 100万 | 10GB |
| **总计** | **~70** | **~4000万/年** | **~500GB（5年）** |

### 大表监控（年增长>100万）

| 表名 | Schema | 年增长 | 索引策略 |
|------|--------|--------|---------|
| llm_usage | platform | 1000万 | 按月分区 |
| messages | aia | 1000万 | 按created_at索引 |
| document_chunks | pkb | 3000万 | 向量索引 |
| literature_items | asl | 1000万 | 按project_id索引 |
| screening_results | asl | 1000万 | 复合索引 |

---

## 🔍 快速查找指南

### 场景1：我要开发某个模块
1. 在上面的表格中找到对应的Schema
2. 点击"详细设计"链接
3. 查看该模块的完整表结构

### 场景2：我要查看某个表的结构
1. 先确定表属于哪个Schema（根据功能判断）
2. 转到对应模块的数据库设计文档
3. 搜索表名

### 场景3：我要设计跨模块功能
1. 查看本文档的"跨Schema依赖关系"
2. 遵循依赖规则
3. 在应用层处理跨模块关联，不在数据库层

### 场景4：我要查看全局数据架构
1. 阅读本文档（快速了解所有Schema）
2. 查看[架构设计全景图](../00-系统总体设计/08-架构设计全景图.md)

---

## ⚠️ 重要提醒

### Schema隔离的注意事项

**✅ 正确做法：**
- 业务模块只引用 `platform_schema.users`
- 跨模块数据关联在应用层处理
- 使用 `user_id + 业务ID` 的方式

**❌ 错误做法：**
- 业务模块之间直接外键关联
- 在 `platform_schema` 中存储业务数据
- 不同模块使用相同的表名（虽然Schema隔离了，但容易混淆）

### 性能优化建议

1. **大表必须分页查询**（如 `llm_usage`、`messages`）
2. **热点字段必须加索引**（如 `user_id`、`created_at`）
3. **考虑表分区**（按月/按年，如 `llm_usage`）
4. **定期归档历史数据**（如1年前的日志）

---

## 🔗 相关文档

**规范：**
- [数据库设计规范](./01-数据库设计规范.md) ⭐ 必读
- [数据库架构说明](../00-系统总体设计/03-数据库架构说明.md)

**模块设计：**
- [平台基础层](../01-平台基础层/README.md)
- [通用能力层](../02-通用能力层/README.md)
- [业务模块层](../03-业务模块/README.md)

**模板：**
- [数据库设计模板](../_templates/数据库设计-模板.md)

---

**最后更新：** 2025-11-06  
**维护人：** 技术架构师  
**版本：** v1.0














