DukeDuke
主页
项目文档
技术文档
  • 单机版
  • 微服务
  • 代办项目
  • 优鲜项目
项目管理
关于我们
主页
项目文档
技术文档
  • 单机版
  • 微服务
  • 代办项目
  • 优鲜项目
项目管理
关于我们
  • 文档

    • 各系统介绍
    • 项目风险评估
    • 项目开发计划
    • 项目需求文档
    • 项目开发规范

      • Java开发规范
      • 数据库开发规范
      • 系统架构设计规范
    • 项目进度报告
    • 概要设计说明书
    • 详细设计说明书
    • 部署文档
    • 用户手册
    • 运维手册

数据库规范文档

1. 简介

1.1 目的

明确数据库设计、开发及维护的标准规范,保障数据一致性、完整性和系统性能。

1.2 适用范围

适用于所有涉及数据库设计、开发及维护的团队和项目。


2. 命名规范

2.1 基本规则

  • 使用小写字母 + 下划线 (snake_case)
  • 禁止使用保留字和特殊符号
  • 命名需具备可读性,避免缩写歧义

2.2 数据库对象命名

对象类型规则示例说明
数据库名project_module小写 + 下划线
表名user_profile需反映数据实体
字段名created_at时间字段加 _at 后缀
索引名idx_table_columnidx_ 前缀
主键名pk_table_columnpk_ 前缀
外键名fk_table_column_reffk_ 前缀

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)保存最新版本

最近更新:: 2025/8/14 09:20
Contributors: Duke
Prev
Java开发规范
Next
系统架构设计规范