512 lines
14 KiB
Markdown
512 lines
14 KiB
Markdown
# 泰豪电源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大业务模块**
|
||
✅ **支持"一个底座、多种智能体"架构**
|
||
|
||
**数据库设计已完全就绪,可直接用于项目开发!** 🚀
|
||
|
||
---
|
||
|
||
**感谢使用!**
|