数据库设计规范

技术文档网 2021-04-16

命名规范

  • 全部小写
  • 必须使用字母开头
  • 多词用下划线分割
  • 『禁止』使用保留字命名
  • 命名要见名知其意、简洁,长度不超过 30 个字符
  • 临时表必须以tmp_ 开头、以日期结尾,备份表必须以 bak_ 开头、以日期结尾

基础规范

  • 使用 Innodb 作为表的默认引擎,慎重使用其它表引擎
  • 库表统一使用 UTF8MB4 编码
  • 所有表名、字段必须要有注释(id 除外)
  • 冷热数据分离、适当冗余
  • 禁止存放图片、文件等二进制数据

表规范

  • 表名长度不超过 30 个字符
  • 结尾词使用复数形式
  • 表『必须』有 ID
  • 『必须』有创建时间 created_at
  • 尽可能不使用外键
  • 每个表字段在 50 个以内
  • 『text』类大文本字段,分离

字段规范

  • 以字母开头
  • 以下划线分割
  • 如果是相同的数据放一个字段,则这个字段名『必须』是复数,其它情况则『必须』单数
  • 长度不超 30 个字符
  • 优先考虑使用存储空间最小的类型与长度
  • 禁止使用数字型 enum 使用 tinyint 来替换,字符型 enum 使用 varchar 或 char 来替换
  • 尽可能使用 NOT NULL
  • 时间使用 TIMESTAMP 类型
  • 金额相关数据『必须』使用 decimal 数据类型,单位分
  • 关联表的字段名使用 名表_id 形式
  • char 优先于 varchar
  • 在不需要负数的情况下,使用 unsigned
  • 『禁止』敏感隐私类数据明文存储

索引规范

  • 常用的条件字段『必须』使用索引
  • 很少用的条件字段不必加索引
  • 复合索引优先于多个二级索引,最左原则
  • 索引字段上『禁止』使用计算或函数
  • Innodb 使用 count(*) 或 count(1) 来统计

相关文章

  1. solr的高亮详解(Highlighting)

    一、简介 Highlighting(高亮)是solr的另一个核心功能,即在查询返回的结果中高亮显示命中的查询关键字。solr高亮能够帮助用户快速地从查询结果集中扫 描出哪些结果值得进一步的查阅浏览,

  2. 数据库设计规范

    命名规范 全部小写 必须使用字母开头 多词用下划线分割 『禁止』使用保留字命名 命名要见名知其意、简洁,长度不超过 30 个字符 临时表必须以tmp_ 开头、以日期结尾,备份表必须以 bak_ 开头

  3. 一个在postgresql数据库环境下的用户认证的例子

    ##问题 如何利用PostgreSQL数据库实现一个用户认证系统? ##解法 用户认证系统有很多功能。在这个例子中,将展示如何在PostgreSQL数据库环境下一步一步完成一个用户认证系统 #

  4. Oracle-数据泵(IMPDP-EXPDP)导入导出总结

    Oracle数据泵导入导出是日常工作中常用的基本技术之一,它相对传统的逻辑导入导出要高效,这种特性更适合数据库对象数量巨大的情形,因为我日常运维的数据库对象少则几千,多则几万甚至几十万,所以传统ex

  5. mongodb与mysql区别对比

    mongodb与关系型数据库相比的优缺点 与关系型数据库相比,MongoDB的优点: ①弱一致性(最终一致),更能保证用户的访问速度: 举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定

随机推荐

  1. solr的高亮详解(Highlighting)

    一、简介 Highlighting(高亮)是solr的另一个核心功能,即在查询返回的结果中高亮显示命中的查询关键字。solr高亮能够帮助用户快速地从查询结果集中扫 描出哪些结果值得进一步的查阅浏览,

  2. 数据库设计规范

    命名规范 全部小写 必须使用字母开头 多词用下划线分割 『禁止』使用保留字命名 命名要见名知其意、简洁,长度不超过 30 个字符 临时表必须以tmp_ 开头、以日期结尾,备份表必须以 bak_ 开头

  3. 一个在postgresql数据库环境下的用户认证的例子

    ##问题 如何利用PostgreSQL数据库实现一个用户认证系统? ##解法 用户认证系统有很多功能。在这个例子中,将展示如何在PostgreSQL数据库环境下一步一步完成一个用户认证系统 #

  4. Oracle-数据泵(IMPDP-EXPDP)导入导出总结

    Oracle数据泵导入导出是日常工作中常用的基本技术之一,它相对传统的逻辑导入导出要高效,这种特性更适合数据库对象数量巨大的情形,因为我日常运维的数据库对象少则几千,多则几万甚至几十万,所以传统ex

  5. mongodb与mysql区别对比

    mongodb与关系型数据库相比的优缺点 与关系型数据库相比,MongoDB的优点: ①弱一致性(最终一致),更能保证用户的访问速度: 举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定