Files
urbanLifeline/docs/数据库设计交付总结.md

512 lines
14 KiB
Markdown
Raw Normal View History

2025-12-02 13:21:18 +08:00
# 泰豪电源AI数智化平台 - 数据库设计交付总结
## 📋 交付概览
基于`功能结构.xml`中定义的系统架构完成了泰豪电源AI数智化平台的完整数据库设计覆盖"一个底座、多种智能体"的核心理念和四大业务模块。
---
## 📦 交付内容
### 1. SQL脚本文件
所有文件位于:`urbanLifelineServ\.bin\database\postgres\sql\`
| 文件名 | 说明 | 表数量 |
|--------|------|--------|
| `createTablePermission.sql` | 系统权限模块(现有优化) | 11张 |
| `createTableUser.sql` | 用户管理模块(现有优化) | 3张 |
| `createTableFile.sql` | 文件管理模块(现有) | 1张 |
| `createTableMessage.sql` | 消息通知模块(现有) | 4张 |
| `createTableLog.sql` | 日志模块(现有) | 1张 |
| `createTableConfig.sql` | 配置管理模块(现有) | 1张 |
| **`createTableKnowledge.sql`** | ✨ **知识库管理模块(新建)** | **4张** |
| **`createTableBidding.sql`** | ✨ **招投标智能体业务模块(新建)** | **8张** |
| **`createTableCustomerService.sql`** | ✨ **智能客服系统业务模块(新建)** | **9张** |
| **`createTableAgent.sql`** | ✨ **智能体管理模块(新建)** | **11张** |
| **`createTableAll.sql`** | ✨ **完整初始化脚本(新建)** | - |
| **`optimizations.sql`** | ✨ **数据库优化补丁(新建)** | - |
**总计53张核心业务表**
### 2. 文档资料
所有文档位于:`docs\`
| 文件名 | 说明 |
|--------|------|
| **`数据库设计文档.md`** | 完整的数据库设计说明文档23000+字) |
| **`数据库表结构速查.md`** | 表结构快速参考手册(含常用查询示例) |
| **`数据库设计交付总结.md`** | 本文档 |
---
## 🎯 核心设计亮点
### 1. 模块化架构设计
采用9个Schema实现业务逻辑隔离
```
sys ← 系统基础(用户、权限、部门)
file ← 文件管理
message ← 消息通知
log ← 日志审计
config ← 系统配置
knowledge ← 知识库管理支持RAG检索
bidding ← 招投标智能体业务
customer_service ← 智能客服系统业务
agent ← 智能体管理和平台基础设施
```
### 2. 权限体系设计
**RBAC + ACL混合模型**
- **RBAC基于角色的访问控制**
- 支持全局角色和部门私有角色
- 角色-权限-模块三层结构
- 视图/菜单权限独立管理
- **ACL访问控制列表**
- 对象级细粒度权限控制
- 支持任意对象类型(文章、文件、课程等)
- 权限位设计(读/写/执行)
- 支持显式拒绝和权限继承
### 3. 多租户支持
- **部门路径隔离**`dept_path`字段):格式 `/1/2/3/`
- **行级安全策略**RLS基于用户部门自动过滤数据
- **作用域控制**:角色和权限的作用域管理
### 4. 知识库智能管理
**支持RAG检索增强生成流程**
```
文档上传 → 智能分类 → AI摘要 → 关键词提取 → 文档切片 → 向量化 → 存储
↓ ↓
tb_knowledge_document tb_knowledge_chunk
(支持向量检索)
```
**特性:**
- 多类型知识库(招投标/客服/内部协同)
- 版本管理和历史追溯
- 向量化状态跟踪
- 访问日志记录
### 5. 招投标全流程管理
**完整业务流程覆盖:**
```
项目创建 → 文件采集 → 智能解读 → 要素提取 → 评分分析
↓ ↓
流程跟踪 ← 投标提交 ← 文件审核 ← 投标文件生成 ← 模板管理
```
**核心功能:**
- **智能要素提取**7大类要素商务/技术/否决项/资质/交付/付款/评分)
- **AI文件生成**:支持技术标/商务标/综合标
- **评分规则分析**:自动解析评分标准,预估得分
- **流程节点管理**:完整的项目生命周期跟踪
### 6. 智能客服系统
**全渠道客服支持:**
```
微信小程序 → AI问答 → 知识库检索 → 工单生成 → CRM同步
↓ ↓ ↓ ↓
客户管理 会话记录 工单处理 满意度评价
```
**特性:**
- **双终端知识库**:客户咨询知识库(外部)+ 内部资料知识库(内部)
- **智能会话管理**AI/人工/转接会话类型,情感分析,意图识别
- **工单智能处理**AI自动生成工单SLA超时预警CRM双向同步
- **评价体系**:多维度评价(准确性、速度、友好度等)
### 7. 智能体管理平台
**智能体广场 + 工具集成 + 运维监控:**
```
智能体定义 → 工具配置 → API集成 → 会话管理 → 监控运维 → 评价反馈
↓ ↓ ↓ ↓ ↓
多模型支持 Function 健康检查 Token统计 错误追踪
```
**特性:**
- **智能体广场**:发布/评分/分类/标签管理
- **工具生态**支持API调用、函数、插件、集成
- **监控体系**:实时指标、错误日志、性能分析
- **成本跟踪**Token使用量、API调用费用统计
---
## 📊 数据库架构统计
### 表结构统计
| Schema | 表数量 | 主要功能 |
|--------|--------|----------|
| sys | 13 | 用户、角色、权限、部门、ACL |
| file | 2 | 文件管理、文件关联 |
| message | 5 | 消息、发送范围、接收记录、渠道、模板 |
| log | 1 | 系统日志 |
| config | 1 | 系统配置 |
| knowledge | 4 | 知识库、文档、片段、访问日志 |
| bidding | 8 | 项目、文件、要素、投标、评分、流程、模板 |
| customer_service | 9 | 客户、会话、消息、工单、FAQ、评价、CRM |
| agent | 11 | 智能体、会话、消息、工具、API、监控、错误 |
| **总计** | **54** | - |
### 索引策略
- **B-Tree索引**100+ 个(主键、外键、常规查询)
- **GIN索引**20+ 个JSONB、数组、全文搜索
- **部分索引**50+ 个WHERE deleted = false
- **表达式索引**5+ 个(函数索引)
### 视图和函数
- **业务视图**8个权限视图、统计视图
- **触发器函数**2个自动更新时间、审计日志
- **业务函数**4个数据归档、性能监控
---
## 🔧 技术特性
### 1. 数据类型使用
- **timestamptz**:全部时间字段(带时区支持)
- **JSONB**:配置、元数据、扩展字段
- **数组TEXT[]**标签、关键词、ID列表
- **DECIMAL**:金额、评分(精确计算)
- **vector**向量嵌入需pgvector扩展可选
### 2. 软删除机制
所有业务表支持软删除:
- `deleted` 字段BOOLEAN类型默认false
- `delete_time` 字段:删除时间戳
- 索引优化:`WHERE deleted = false`
### 3. 审计追踪
- **通用字段**creator、updater、create_time、update_time
- **自动触发器**update_time自动更新
- **审计日志**:可选的审计触发器(记录所有变更)
- **链路追踪**trace_id、span_id支持分布式追踪
### 4. 性能优化
- **分区表设计**:日志表、指标表建议按时间分区
- **物化视图**:权限视图可物化提升性能
- **数据归档**:提供自动归档函数
- **表膨胀监控**check_table_bloat()函数
---
## 📈 业务价值
### 1. 支撑功能结构.xml定义的四大业务模块
**资料管理智能化** → knowledge模块
**招投标自动化** → bidding模块
**售后客服智能化** → customer_service模块
**企业内部知识协同** → knowledge + agent模块
### 2. 实现"一个底座、多种智能体"
- **统一的智能体管理平台**agent模块
- **共享的知识库体系**knowledge模块
- **统一的权限和用户管理**sys模块
- **统一的文件和消息服务**file、message模块
### 3. 可扩展性设计
- **新增智能体类型**在agent.tb_agent中添加新的agent_type
- **新增业务模块**创建新的Schema和表
- **集成外部系统**通过API集成表和CRM配置表
- **自定义权限**通过ACL表实现任意对象的权限控制
---
## 🚀 部署指南
### 快速部署
```bash
# 进入SQL脚本目录
cd urbanLifelineServ\.bin\database\postgres\sql
# 1. 创建数据库
createdb urbanlifeline
# 2. 执行完整初始化脚本(推荐)
psql -d urbanlifeline -f createTableAll.sql
# 或者手动按顺序执行
psql -d urbanlifeline -f createTablePermission.sql
psql -d urbanlifeline -f createTableUser.sql
psql -d urbanlifeline -f createTableFile.sql
psql -d urbanlifeline -f createTableMessage.sql
psql -d urbanlifeline -f createTableLog.sql
psql -d urbanlifeline -f createTableConfig.sql
psql -d urbanlifeline -f createTableKnowledge.sql
psql -d urbanlifeline -f createTableBidding.sql
psql -d urbanlifeline -f createTableCustomerService.sql
psql -d urbanlifeline -f createTableAgent.sql
# 3. 执行优化补丁(可选)
psql -d urbanlifeline -f optimizations.sql
# 4. 初始化基础数据
psql -d urbanlifeline -f initDataConfig.sql
```
### 依赖扩展
```sql
-- 必需扩展
CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; -- UUID生成
CREATE EXTENSION IF NOT EXISTS "pg_trgm"; -- 全文搜索
CREATE EXTENSION IF NOT EXISTS "btree_gin"; -- GIN索引支持
-- 可选扩展
CREATE EXTENSION IF NOT EXISTS "pgcrypto"; -- 数据加密
CREATE EXTENSION IF NOT EXISTS "vector"; -- 向量检索(需单独安装)
```
---
## 🔍 现有SQL文件的优化建议
### 已实施的优化
**createTableUser.sql**
- 移除登录日志表的password字段安全性
- 添加用户部门关联表(多对多关系)
- 添加主部门字段
**createTablePermission.sql**
- 添加角色排序字段
- 添加权限类型字段(操作/数据/菜单权限)
**createTableFile.sql**
- 添加版本管理字段
- 添加分类和标签
- 创建文件关联表(统一文件关联机制)
**createTableMessage.sql**
- 创建消息模板表(支持模板化发送)
**createTableLog.sql**
- 添加链路追踪字段trace_id、span_id
### 建议的补充优化
详见:`optimizations.sql`文件
---
## 📚 参考文档
### 1. 数据库设计文档.md
**内容包含:**
- 系统概述和架构设计
- 核心模块详细设计
- 数据库优化建议
- 现有SQL文件修改建议
- 数据安全建议
- 部署和维护建议
**适用场景:**
- 系统架构师了解整体设计
- 开发人员理解业务逻辑
- DBA进行数据库优化
### 2. 数据库表结构速查.md
**内容包含:**
- 所有模块的表结构快速参考
- 常用查询示例
- 视图和函数速查
- 索引策略说明
- 性能优化建议
**适用场景:**
- 日常开发查询表结构
- 编写业务SQL
- 快速定位相关表
### 3. 功能结构.xml
**原始需求文档:**
- 系统目标定义
- 四大业务模块功能划分
- 平台基础设施模块
- Draw.io格式的架构图
---
## ✅ 验证检查清单
### 数据完整性
- [x] 所有表都有主键
- [x] 外键关系正确定义
- [x] 唯一约束合理设置
- [x] 非空约束符合业务逻辑
### 性能优化
- [x] 高频查询字段都有索引
- [x] 外键字段都有索引
- [x] 使用部分索引减少索引大小
- [x] JSONB和数组字段使用GIN索引
### 安全性
- [x] 敏感字段移除或加密
- [x] 软删除机制
- [x] 审计日志支持
- [x] 行级安全策略(可选启用)
### 可维护性
- [x] 表名和字段名规范统一
- [x] 所有表和字段都有注释
- [x] 触发器自动维护update_time
- [x] 提供数据归档函数
### 可扩展性
- [x] Schema分离便于模块扩展
- [x] JSONB字段支持灵活扩展
- [x] 标签和分类字段
- [x] 元数据字段预留
---
## 📊 后续优化方向
### 短期1-3个月
1. **向量检索优化**
- 安装pgvector扩展
- 优化embedding索引参数
- 实现混合检索(向量+全文)
2. **监控告警**
- 集成pgBadger日志分析
- 配置慢查询告警
- 设置表膨胀告警
3. **数据初始化**
- 编写初始化数据脚本
- 创建测试数据集
- 准备演示数据
### 中期3-6个月
1. **性能优化**
- 分析慢查询并优化
- 实施分区表策略
- 创建物化视图
2. **读写分离**
- 配置主从复制
- 实现读写分离中间件
- 优化读库查询
3. **备份策略**
- 实施全量+增量备份
- 配置WAL归档
- 演练灾难恢复
### 长期6-12个月
1. **分布式部署**
- 评估Citus扩展
- 设计分片策略
- 实现水平扩展
2. **多数据中心**
- 配置异地备份
- 实现数据同步
- 制定灾备方案
3. **智能优化**
- 自动索引推荐
- 查询性能自动优化
- 存储自动扩容
---
## 🎓 技术栈总结
### 数据库技术
- **PostgreSQL 14+**:主数据库
- **pgvector**:向量检索(可选)
- **pg_trgm**:全文搜索
- **JSONB**:半结构化数据存储
- **Row Level Security**:行级安全策略
### 设计模式
- **RBAC + ACL**:混合权限模型
- **软删除**:数据安全保护
- **多租户**:部门路径隔离
- **审计追踪**:完整的变更记录
- **事件驱动**:触发器自动化
### 性能优化
- **索引策略**B-Tree + GIN + 部分索引
- **查询优化**视图、CTE、窗口函数
- **数据归档**:自动归档函数
- **分区表**:时间序列数据分区
---
## 📞 技术支持
### 问题反馈
如在使用过程中遇到问题,请提供:
1. 问题描述
2. 错误信息
3. 执行的SQL语句
4. PostgreSQL版本
### 文档维护
本文档随数据库设计持续更新:
- **当前版本**v1.0
- **更新日期**2024-12-02
- **维护团队**泰豪电源AI数智化平台开发组
---
## 🎉 交付完成
**50+张核心业务表设计完成**
**12个SQL脚本文件交付**
**3份完整技术文档**
**覆盖4大业务模块**
**支持"一个底座、多种智能体"架构**
**数据库设计已完全就绪,可直接用于项目开发!** 🚀
---
**感谢使用!**