一、建表规约
1.数据库表名
- 表名由英文字母、下划线
_
和数字组成,但不建议使用数字 - 表名以英文字母开头,以下划线
_
连接 - 表名全部使用小写字母
- 表名不使用复数形式,仅仅表示实体内容即可
- 表名可以根据需要添加表前缀,表前缀与实际表名以下划线
_
相连 - 禁用保留字和关键词命名
2.字段名
- 表达是与否概念的字段使用
is_
前缀 - 字段名由英文字母、下划线
_
和数字组成,但不建议使用数字 - 字段名以英文字母开头,以下划线
_
连接 - 字段名全部使用小写字母
- 禁用保留字和关键词命名
3.索引名
- 唯一索引名使用
uk_
前缀,普通索引使用idx_
前缀
4.其他规约
- 使用合适的存储长度以提升存储空间,提高检索速度
- 不同表之间的字段可以存在冗余,但是要保证数据更新和修改的同步(冗余字段不能是频繁修改的字段)
- 设计表时应该对字段进行注释说明字段含义
- 设计表时要存在三个必备字段:
id
、created_at
和updated_at
- 设计表时小数类型使用
decimal
,禁止使用float
和double
- 如果设计表时字段值的长度可以预见在一定范围之内,请使用
char
类型 - 设计表时业务逻辑上具有唯一特性的字段必须建成唯一索引
二、SQL规约
- 判断值是否为
NULL
的方法为:ISNULL()
(NULL
与任何值做任何比较都是NULL
) -
SUM()
函数的使用要注意NPE
(NullPointerException
):当SUM()
的该列值全部为NULL
时 - 当
COUNT()
的那一列值全为NULL
时所得的结果为0
(使用COUNT(*)
而不是COUNT()
某一列来统计记录数目) - 查询时不要使用
SELECT(*)
来查询结果,只查出需要的字段即可 - 不要过多使用
in
操作,避免in
的目标集合数目过多,一般控制在1000
以内 - 编码如果没有特殊要求请全部使用
UTF-8
由于本人学艺不精,未尽之处还望海涵,有误之处请多多指正,欢迎大家批评指教
本文 完
网友评论