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

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

本文 完

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 本开发规范基于《阿里巴巴Java开发手册终极版》修改,并集成我们自己的项目开发规范,整合而成。 为表示对阿里...
    4ea0af17fd67阅读 10,943评论 0 5
  • 来源与:阿里云栖 禁止用于商业用途 ps:如果需要电子书 评论你们邮箱 我会发给你们 下面感觉还是有点乱 目录 一...
    小向资源网阅读 12,269评论 0 12
  • 阿里巴巴 JAVA 开发手册 1 / 32 Java 开发手册 版本号 制定团队 更新日期 备 注 1.0.0 阿...
    糖宝_阅读 12,275评论 0 5
  • 一、编程规约 (一)命名规约 【强制】 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。反...
    喝咖啡的蚂蚁阅读 5,412评论 0 2
  • 你说,梦落地后,会不会生根发芽呢? 云她舍不得散 她说她要飘到世界各地去看日出日落 花她舍不得落 她说她要落到真正...
    白和阅读 1,651评论 0 0