MySQL Ruler mysql 日常开发规范

打印 上一主题 下一主题

主题 875|帖子 875|积分 2625

拓展阅读

MySQL View
MySQL truncate table 与 delete 清空表的区别和坑
MySQL Ruler mysql 日常开发规范
MySQL datetime timestamp 以及怎样自动更新,怎样实现范围查询
MySQL 06 mysql 怎样实现雷同 oracle 的 merge into
MySQL 05 MySQL入门教程(MySQL tutorial book)
MySQL 04- EMOJI 心情与 UTF8MB4 的故事
MySQL Expression 1 of ORDER BY clause is not in SELECT list,references column
MySQL Ruler

写在前面:
一、为何写
为了自己以后的脚本编写或者是为团队公司提供一个可以达成共识的标准。
二、怎么定规范
简洁明了。根据现实业务可以进行调整。每一个规定只管描述清楚缘由。规范必须是不停变化的,量体裁衣。
三、参考
《架构师之路》中有提及一些数据库军规。可以提供参考。
四、利用
解读比规则自己更重要。
规范草案

底子规范
实用于全部。(database, table, column)
1、必须有中文解释
可以解释到任何一个程序员(包括黑客)看到注释后立刻理解此中的含义。而不是推敲此中的意思。为了包管这一点,衍生了第二条。
2、只管利用英文,禁止中英文混用命名。
比如你看到了 zhrmghg 这个字段然后以为很深奥,后来问命名者告诉你是中华人民共和国的简拼啊,你看不出来啊。。。
3、命名禁止出现大写字母, 禁止出现_以外的字符。
必须包管命名规则转换后可以符合比如驼峰命名。
4、禁止利用数字。利用英文单词替代。
举个例子 email_1, 那么请重命名为email_one。信赖你可写出0-99的英文单词。制止,分不清l1, 分不清o0。
5、禁止利用双引号对名称引用, 制止大小写敏感。
假如需要单词间空格, 替换为下划线。
6、全部的命名只管指出字段的业务含义。
如此之难,以至于想将这一条删除。
数据库规范
1、统一利用 UTF-8 编码
无需转码,无乱码风险。
2、数据库命名与系统名称保持一致。且必须满足底子规范。
比如项目名称blog-service, 对应数据库名称 blog_service
表规范
1、假如是 MySQL, 请利用 InnoDB 引擎
支持事务。其他不吹不黑。
2、必须有主键。
如BIGINT(20)自增的ID, 有利于表的管理。但是这个ID未必是你的唯一约束主键。
3、禁止利用外键。
全部的关联利用应用程序去包管。
4、表名称应统一利用t_开头。
可以与普通的类区分开。当然这一点不强求。(很多公司做不到)
列规范
1、禁止列名利用 col等毫无意义的作为前缀/后缀。
不要把名称浪费在无用的事情上。
2、主键命名统一为id, 当然你也可以使其不包含任何业务含义。
不多说。
3、表中一般会包含2个字段,创建时间和更新时间。请自行统一约定。
date 一般指日期, time 指时间。你可以约定为 created_time 和 updated_time。包管全部的 表统一。不要乱改名字。
4、全部的字段都只管设定为 NOT NULL
这一点根据业务而定。其实 null 不节约任何空间且会导致查询性能优化变得困难。
5、禁止利用 TEXT、BLOB 此类较大的字段
存放他的URL,对应的内容放在文件服务器中。
索引规范
1、单表索引不易过多。(5个以内为佳)
2、组合索引,区分度大的放在前面。
利于数据的快速过滤。
3、索引命名如下:

  • pk 主键 (primary key)
  • uk 唯一键 (unique key)
  • nk 普通索引 (normal key)
以上命名方式为前缀。你会说为什么不写英文全拼啊 ? 不现实,总会有人写错。
SQL 利用规范

1、禁止利用 SELECT *, 必须指定需要查询的字段。
2、禁止利用 INSERT INTO t_xxx VALUES (XXX), 必须明确指定插入的列属性
3、禁止全表扫描
可以看下 索引不工作的case, 实在无法制止可以和前端结合。比如查询必须指定某一区分度很大的字段才能查询。
4、只管倒霉用 JOIN
这一点很多人难以担当。处于性能无可厚非的规则。但是假如性能要求没有这么高,资源又有限,可不必遵照。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曂沅仴駦

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表