最近需要根据业务需求重新设计一套完整的数据库,记录一下规范的数据库设计原则。
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 *