Files
urbanLifeline/docs/数据库设计交付总结.md
2025-12-02 13:36:09 +08:00

14 KiB
Raw Blame History

泰豪电源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表实现任意对象的权限控制

🚀 部署指南

快速部署

# 进入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

依赖扩展

-- 必需扩展
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格式的架构图

验证检查清单

数据完整性

  • 所有表都有主键
  • 外键关系正确定义
  • 唯一约束合理设置
  • 非空约束符合业务逻辑

性能优化

  • 高频查询字段都有索引
  • 外键字段都有索引
  • 使用部分索引减少索引大小
  • JSONB和数组字段使用GIN索引

安全性

  • 敏感字段移除或加密
  • 软删除机制
  • 审计日志支持
  • 行级安全策略(可选启用)

可维护性

  • 表名和字段名规范统一
  • 所有表和字段都有注释
  • 触发器自动维护update_time
  • 提供数据归档函数

可扩展性

  • Schema分离便于模块扩展
  • JSONB字段支持灵活扩展
  • 标签和分类字段
  • 元数据字段预留

📊 后续优化方向

短期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大业务模块
支持"一个底座、多种智能体"架构

数据库设计已完全就绪,可直接用于项目开发! 🚀


感谢使用!