# 数据库全局视图 > **目的?* 提供所有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智能问答相关数据?2个智能体、对话历史) **状态:** ?已实? **详细设计?* [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 | 表数?| 年增长记录数 | 存储预估?年) | |--------|--------|------------|---------------| | 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?年)** | ### 大表监控(年增长>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