数据库评审规范
文档编号: SYS-DB-STD-003
版本: 1.0
日期: 2026-03-08
作者: 数据库架构师
状态: ✅ 已发布
审核状态: ✓ 已审核通过
审核日期: 2026-03-08
审核人: 技术总监
一、概述
1.1 目的
本文档定义System平台数据库设计评审的规范流程、检查项和标准,确保数据库设计的质量和一致性。
1.2 适用范围
- 逻辑数据模型评审
- 物理数据模型评审
- 索引设计评审
- 分区设计评审
- 数据字典评审
- SQL脚本评审
1.3 评审原则
- 全面性: 覆盖所有设计要素
- 规范性: 遵循既定标准和规范
- 可追溯: 记录评审过程和结果
- 持续改进: 基于评审反馈优化设计
二、评审流程
2.1 评审阶段
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 评审准备 │ -> │ 评审执行 │ -> │ 问题跟踪 │ -> │ 基线建立 │
│ (2天) │ │ (1天) │ │ (3天) │ │ (1天) │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘2.2 评审准备
2.2.1 评审材料准备
| 序号 | 材料名称 | 负责人 | 完成标准 |
|---|---|---|---|
| 1 | 逻辑数据模型 | 数据库设计师 | ER图完整,实体定义清晰 |
| 2 | 物理数据模型 | 数据库设计师 | 表结构设计完成 |
| 3 | 索引设计文档 | 数据库设计师 | 索引方案完整 |
| 4 | 数据字典 | 数据库设计师 | 所有字段有明确定义 |
| 5 | SQL脚本 | 数据库开发工程师 | DDL脚本可执行 |
| 6 | 评审检查清单 | 评审负责人 | 检查项完整 |
2.2.2 评审人员确定
| 角色 | 人数 | 职责 |
|---|---|---|
| 评审组长 | 1 | 主持评审会议,把控评审质量 |
| 数据库架构师 | 1-2 | 评审技术方案,提出优化建议 |
| 业务专家 | 1-2 | 评审业务规则,确认业务逻辑 |
| 开发负责人 | 1 | 评审可实现性,评估开发工作量 |
| 测试负责人 | 1 | 评审可测试性,提出测试建议 |
| 记录员 | 1 | 记录评审过程和问题 |
2.2.3 评审通知
- 提前 3个工作日 发送评审通知
- 通知包含:评审时间、地点、议程、材料清单
- 参会人员确认回复
2.3 评审执行
2.3.1 评审会议议程
| 序号 | 议程项 | 时长 | 负责人 |
|---|---|---|---|
| 1 | 评审目的和范围说明 | 10分钟 | 评审组长 |
| 2 | 设计文档讲解 | 30分钟 | 数据库设计师 |
| 3 | 逐条检查项评审 | 60分钟 | 全体参会人员 |
| 4 | 问题讨论和确认 | 30分钟 | 全体参会人员 |
| 5 | 评审结论和决议 | 20分钟 | 评审组长 |
| 合计 | 150分钟 |
2.3.2 评审方式
- 文档预审: 评审会前24小时发放材料,参会人员提前阅读
- 会议评审: 现场逐条检查,讨论问题
- 线上评审: 使用评审工具进行异步评审(可选)
2.4 问题跟踪
2.4.1 问题分级
| 级别 | 定义 | 处理时限 | 处理方式 |
|---|---|---|---|
| P0-严重 | 设计缺陷,必须修改 | 1天 | 必须修改后重新评审 |
| P1-重要 | 设计不合理,建议修改 | 3天 | 修改后确认即可 |
| P2-一般 | 优化建议,可选修改 | 7天 | 记录待后续优化 |
| P3-提示 | 参考意见,不强制 | - | 记录备查 |
2.4.2 问题跟踪流程
问题发现 -> 问题记录 -> 问题分级 -> 分配责任人 -> 问题修复 -> 问题验证 -> 问题关闭2.5 基线建立
2.5.1 基线条件
- 所有P0问题已解决
- 所有P1问题已解决或有明确处理计划
- 评审报告已签署
2.5.2 基线内容
- 逻辑数据模型基线
- 物理数据模型基线
- 数据字典基线
- SQL脚本基线
三、评审检查项
3.1 逻辑数据模型检查项
3.1.1 实体设计检查
| 序号 | 检查项 | 检查标准 | 优先级 |
|---|---|---|---|
| 1 | 实体完整性 | 所有业务实体已识别 | P0 |
| 2 | 实体命名 | 符合命名规范 | P1 |
| 3 | 实体定义 | 每个实体有清晰的业务定义 | P1 |
| 4 | 实体粒度 | 实体粒度合理,不过粗或过细 | P1 |
| 5 | 冗余实体 | 无冗余实体 | P1 |
3.1.2 属性设计检查
| 序号 | 检查项 | 检查标准 | 优先级 |
|---|---|---|---|
| 1 | 属性完整性 | 所有业务属性已识别 | P0 |
| 2 | 属性命名 | 符合命名规范 | P1 |
| 3 | 数据类型 | 数据类型选择合理 | P1 |
| 4 | 必填属性 | 业务必填属性已标识 | P1 |
| 5 | 派生属性 | 派生属性有明确计算规则 | P2 |
3.1.3 关系设计检查
| 序号 | 检查项 | 检查标准 | 优先级 |
|---|---|---|---|
| 1 | 关系完整性 | 实体间关系完整 | P0 |
| 2 | 关系类型 | 关系类型正确(1:1, 1:N, M:N) | P0 |
| 3 | 关系命名 | 关系有清晰的业务含义 | P2 |
| 4 | 循环依赖 | 无循环依赖 | P0 |
| 5 | 关系冗余 | 无冗余关系 | P1 |
3.1.4 业务规则检查
| 序号 | 检查项 | 检查标准 | 优先级 |
|---|---|---|---|
| 1 | 规则完整性 | 关键业务规则已定义 | P0 |
| 2 | 规则一致性 | 规则与需求文档一致 | P0 |
| 3 | 规则可实现 | 规则可以在数据库层面实现 | P1 |
| 4 | 规则文档化 | 规则有清晰的文档说明 | P1 |
3.2 物理数据模型检查项
3.2.1 表结构设计检查
| 序号 | 检查项 | 检查标准 | 优先级 |
|---|---|---|---|
| 1 | 表命名 | 符合命名规范 | P1 |
| 2 | 字段命名 | 符合命名规范 | P1 |
| 3 | 数据类型 | 数据类型选择合理 | P1 |
| 4 | 字段长度 | 长度设置合理,不过大或过小 | P1 |
| 5 | 默认值 | 默认值设置合理 | P2 |
| 6 | 字段注释 | 所有字段有注释 | P1 |
| 7 | 必备字段 | 包含审计字段(create_time等) | P1 |
3.2.2 约束设计检查
| 序号 | 检查项 | 检查标准 | 优先级 |
|---|---|---|---|
| 1 | 主键约束 | 每个表有主键 | P0 |
| 2 | 主键选择 | 主键选择合理(自增ID/UUID/业务主键) | P1 |
| 3 | 外键约束 | 外键关系已定义 | P1 |
| 4 | 唯一约束 | 唯一性字段有唯一约束 | P1 |
| 5 | 检查约束 | 状态等字段有检查约束 | P2 |
| 6 | 约束命名 | 约束命名符合规范 | P2 |
3.2.3 性能设计检查
| 序号 | 检查项 | 检查标准 | 优先级 |
|---|---|---|---|
| 1 | 大字段 | TEXT/BLOB字段使用合理 | P1 |
| 2 | 字段数量 | 单表字段数量不超过50个 | P2 |
| 3 | 表大小预估 | 有表数据量预估 | P2 |
| 4 | 增长趋势 | 考虑数据增长趋势 | P2 |
3.3 索引设计检查项
| 序号 | 检查项 | 检查标准 | 优先级 |
|---|---|---|---|
| 1 | 主键索引 | 主键自动创建索引 | P0 |
| 2 | 外键索引 | 外键字段有索引 | P1 |
| 3 | 查询索引 | 常用查询条件字段有索引 | P1 |
| 4 | 联合索引 | 联合索引字段顺序合理 | P1 |
| 5 | 索引数量 | 单表索引数量不超过5个 | P2 |
| 6 | 索引命名 | 索引命名符合规范 | P2 |
| 7 | 覆盖索引 | 关键查询使用覆盖索引 | P2 |
| 8 | 索引冗余 | 无冗余索引 | P1 |
3.4 分区设计检查项
| 序号 | 检查项 | 检查标准 | 优先级 |
|---|---|---|---|
| 1 | 分区必要性 | 大表(预计>1000万)需要分区 | P1 |
| 2 | 分区策略 | 分区策略选择合理 | P1 |
| 3 | 分区键 | 分区键选择合理 | P1 |
| 4 | 分区数量 | 分区数量合理 | P2 |
| 5 | 分区维护 | 有分区维护方案 | P2 |
3.5 数据字典检查项
| 序号 | 检查项 | 检查标准 | 优先级 |
|---|---|---|---|
| 1 | 完整性 | 所有表和字段在数据字典中 | P0 |
| 2 | 准确性 | 数据字典与实际设计一致 | P0 |
| 3 | 字段说明 | 字段有清晰的业务说明 | P1 |
| 4 | 枚举值 | 枚举字段有枚举值定义 | P1 |
| 5 | 单位说明 | 数值字段有单位说明 | P2 |
| 6 | 取值范围 | 字段有取值范围说明 | P2 |
3.6 SQL脚本检查项
| 序号 | 检查项 | 检查标准 | 优先级 |
|---|---|---|---|
| 1 | 语法正确 | SQL语句语法正确 | P0 |
| 2 | 可执行性 | SQL脚本可以正常执行 | P0 |
| 3 | 编码规范 | 符合SQL编码规范 | P1 |
| 4 | 注释完整 | 关键SQL有注释说明 | P1 |
| 5 | 事务处理 | DML语句有事务控制 | P1 |
| 6 | 错误处理 | 有错误处理机制 | P2 |
| 7 | 幂等性 | 脚本可重复执行 | P2 |
四、评审标准
4.1 通过标准
评审结论分为以下几种:
| 结论 | 条件 | 后续动作 |
|---|---|---|
| 通过 | 无P0问题,P1问题≤3个 | 建立基线 |
| 有条件通过 | 无P0问题,P1问题>3个 | 修改P1问题后确认 |
| 不通过 | 存在P0问题 | 修改后重新评审 |
4.2 评审报告内容
评审报告应包含以下内容:
评审基本信息
- 评审日期、地点
- 评审对象和范围
- 参会人员列表
评审统计
- 检查项总数
- 通过项数
- 问题项数(按级别统计)
问题清单
- 问题描述
- 问题级别
- 责任人
- 处理时限
评审结论
- 评审结论(通过/有条件通过/不通过)
- 基线建立建议
签字确认
- 评审组长签字
- 数据库架构师签字
- 其他关键人员签字
五、评审工具
5.1 推荐工具
| 工具类型 | 工具名称 | 用途 |
|---|---|---|
| 建模工具 | PowerDesigner | 数据建模 |
| 建模工具 | ER/Studio | 数据建模 |
| 建模工具 | MySQL Workbench | MySQL建模 |
| 版本控制 | Git | 设计文档版本管理 |
| 问题跟踪 | Jira | 问题跟踪管理 |
| 文档协作 | Confluence | 评审文档协作 |
5.2 检查清单模板
markdown
## 数据库设计评审检查清单
### 基本信息
- 评审对象: [设计文档名称]
- 评审日期: [日期]
- 评审人员: [人员名单]
### 检查项
#### 逻辑数据模型
- [ ] 实体完整性
- [ ] 实体命名规范
- [ ] 属性完整性
- [ ] 关系完整性
- [ ] 业务规则定义
#### 物理数据模型
- [ ] 表命名规范
- [ ] 字段命名规范
- [ ] 数据类型合理
- [ ] 主键设计
- [ ] 外键设计
- [ ] 约束设计
#### 索引设计
- [ ] 主键索引
- [ ] 外键索引
- [ ] 查询索引
- [ ] 索引数量合理
#### 数据字典
- [ ] 完整性
- [ ] 准确性
- [ ] 字段说明清晰
#### SQL脚本
- [ ] 语法正确
- [ ] 可执行
- [ ] 符合编码规范
### 问题记录
| 序号 | 问题描述 | 级别 | 责任人 | 处理时限 |
|-----|---------|------|-------|---------|
| 1 | | | | |
### 评审结论
- [ ] 通过
- [ ] 有条件通过
- [ ] 不通过
### 签字
评审组长: _______________
日期: _______________六、审核签字
| 角色 | 签字 | 日期 |
|---|---|---|
| 编制人 | 数据库架构师 | 2026-03-08 |
| 审核人 | 技术总监 | 2026-03-08 |
| 批准人 | 技术总监 | 2026-03-08 |
审核意见: 评审规范流程清晰,检查项全面,能够有效保障数据库设计质量,同意发布实施。
七、修订记录
| 版本 | 日期 | 作者 | 变更内容 |
|---|---|---|---|
| 1.0 | 2026-03-08 | 数据库架构师 | 初始版本,建立数据库评审规范 |
