小艾的自留地

Stay foolish, Stay hungry

最近需要根据业务需求重新设计一套完整的数据库,记录一下规范的数据库设计原则。

1、数据库命名规范

  • 命名简洁明确,可以采用字母 + 数字进行组合,多个单词可以使用下划线 _ 进行分割。
  • 一般来说,数据表命名用单数,字段命名也用单数
  • 数据库里面的密码一定要加密,不能保存明文
  • Mysql 引擎类型统一使用 InnoDB,字符编码统一使用 UTF-8

2、数据库表名命名规范

  • 命名简洁明确,可以采用字母 + 数字进行组合,多个单词可以使用下划线 _ 进行分割。
  • 可以合理增加表前缀,有效区分不同类型的数据表

3、数据库表字段名命名规范

  • 命名简洁明确,多个单词使用下划线_进行分割(统一使用小写)
  • 避免使用自定义缩写,如:date => dt
  • 表与表之间的相关联字段名称要求尽可能的相同
  • 每个字段尽量备注其含义

4、数据库表字段类型规范

  • 最好给每个字段一个默认值,避免使用 NULL。字符型默认值为一个空字符值串,数值型的默认值为数值0,逻辑型的默认值为数值0
  • 用尽量少的存储空间来存储一个字段的数据
  • 能用 tinyint 就不用 int,能用 int 就不要用 varchar,能用 varchar(16)就不要用 varchar(225)
  • boolean 类型的命名统一使用is_xxx格式

5、数据库表索引规范

  • 为每个表创建一个主键索引;
  • 为每个表创建合理的普通索引;

一些注意事项

  • 避免使用NULL字段(NULL字段很难查询优化、NULL字段的索引需要额外空间、NULL字段的复合索引无效)
  • 避免使用 count(*)
  • 避免使用 select *

参考链接

评论