PHP开发规范——数据库规范篇(一):MySQL数据库

一、建表规约

1.数据库表名

  • 表名由英文字母、下划线 _ 和数字组成,但不建议使用数字
  • 表名以英文字母开头,以下划线 _ 连接
  • 表名全部使用小写字母
  • 表名不使用复数形式,仅仅表示实体内容即可
  • 表名可以根据需要添加表前缀,表前缀与实际表名以下划线 _ 相连
  • 禁用保留字和关键词命名

2.字段名

  • 表达是与否概念的字段使用 is_ 前缀
  • 字段名由英文字母、下划线 _ 和数字组成,但不建议使用数字
  • 字段名以英文字母开头,以下划线 _ 连接
  • 字段名全部使用小写字母
  • 禁用保留字和关键词命名

3.索引名

  • 唯一索引名使用 uk_ 前缀,普通索引使用 idx_ 前缀

4.其他规约

  • 使用合适的存储长度以提升存储空间,提高检索速度
  • 不同表之间的字段可以存在冗余,但是要保证数据更新和修改的同步(冗余字段不能是频繁修改的字段)
  • 设计表时应该对字段进行注释说明字段含义
  • 设计表时要存在三个必备字段: idcreated_atupdated_at
  • 设计表时小数类型使用 decimal ,禁止使用 floatdouble
  • 如果设计表时字段值的长度可以预见在一定范围之内,请使用 char 类型
  • 设计表时业务逻辑上具有唯一特性的字段必须建成唯一索引

二、SQL规约

  • 判断值是否为 NULL 的方法为: ISNULL()NULL 与任何值做任何比较都是 NULL
  • SUM() 函数的使用要注意 NPENullPointerException):当 SUM() 的该列值全部为 NULL
  • COUNT() 的那一列值全为 NULL 时所得的结果为 0(使用 COUNT(*) 而不是 COUNT() 某一列来统计记录数目)
  • 查询时不要使用 SELECT(*) 来查询结果,只查出需要的字段即可
  • 不要过多使用 in 操作,避免 in 的目标集合数目过多,一般控制在 1000 以内
  • 编码如果没有特殊要求请全部使用 UTF-8

由于本人学艺不精,未尽之处还望海涵,有误之处请多多指正,欢迎大家批评指教

本文 完

你可能感兴趣的:(PHP开发规范——数据库规范篇(一):MySQL数据库)