数据库规范文档
1. 简介
1.1 目的
明确数据库设计、开发及维护的标准规范,保障数据一致性、完整性和系统性能。
1.2 适用范围
适用于所有涉及数据库设计、开发及维护的团队和项目。
2. 命名规范
2.1 基本规则
- 使用小写字母 + 下划线 (
snake_case) - 禁止使用保留字和特殊符号
- 命名需具备可读性,避免缩写歧义
2.2 数据库对象命名
| 对象类型 | 规则示例 | 说明 |
|---|---|---|
| 数据库名 | project_module | 小写 + 下划线 |
| 表名 | user_profile | 需反映数据实体 |
| 字段名 | created_at | 时间字段加 _at 后缀 |
| 索引名 | idx_table_column | idx_ 前缀 |
| 主键名 | pk_table_column | pk_ 前缀 |
| 外键名 | fk_table_column_ref | fk_ 前缀 |
3. 设计规范
3.1 基础原则
- 遵守数据库三范式(特殊场景允许反范式设计)
- 禁止使用
SELECT *查询 - 大字段(如 TEXT/BLOB)需独立建表
3.2 字段规范
- 优先使用
NOT NULL约束 - 时间字段统一使用 UTC 时间
- 金额字段使用
DECIMAL类型 - 禁止使用 ENUM 类型(可用字典表代替)
3.3 主键与外键
- 主键统一使用
BIGINT自增或分布式 ID 方案 - 外键需明确注释关联关系
4. 索引规范
4.1 创建原则
- 单表索引不超过 5 个
- 优先为高频查询字段创建索引
- 联合索引字段顺序遵循 最左匹配原则
4.2 禁止行为
- 禁止为低区分度字段(如性别)单独建索引
- 禁止重复索引(如
idx_a和idx_a_b)
5. SQL 开发规范
5.1 编写要求
- 使用明确的字段列表(禁止
SELECT *) - 事务代码需包含异常回滚逻辑
- 批量操作需分批次提交(建议每批 500-1000 条)
5.2 性能优化
- WHERE 条件避免函数转换(如
WHERE YEAR(create_time) = 2023) - 分页查询使用
LIMIT+ 游标优化
6. 安全规范
6.1 权限管理
- 生产环境禁止使用超级管理员账号
- 按最小权限原则分配账号权限
6.2 敏感数据
- 密码需加密存储(推荐 AES/BCrypt)
- 日志中禁止输出敏感信息
7. 维护规范
7.1 变更管理
- 结构变更需通过 DDL 审核流程
- 必须提供回滚 SQL 脚本
7.2 备份策略
- 生产环境每日全量备份 + 增量备份
- 定期验证备份数据可恢复性
8. 文档管理
8.1 数据字典
- 需维护完整的字段注释说明
- 示例:
COMMENT ON COLUMN users.email IS '用户邮箱(唯一)'
8.2 ER 图
使用标准格式(如 PDF/PNG)保存最新版本
