欢迎点开这篇文章,自我介绍一下哈,本人姑苏老陈 ,是一名JAVA开发老兵。
本文收录于 《MySQL数据库开发设计规范》专栏中,该专栏主要分享一些关于MySQL数据库开发设计相关的技术规范文章,定期更新,欢迎关注,谢谢 :-)
一、前言
在我们对数据库技术方案设计的时候,我们是否有自己的设计理念或者原则,还是更多的依据自己的直觉去设计,是否曾经懊悔线上发生过的一次低级故障,可能稍微注意点就可以避免,是否想过怎么才能很好的避免,规范的价值正是我们工作的检查清单,需要我们不断从错误中积累有效经验来指导未来的工作。
本文介绍MySQL数据库开发设计规范之命名规范。
PS:以下规范在大型互联网公司经过了充分的验证,尤其适用于并发量大、数据量大的业务场景。
二、命名规范
1.【强制】库名、表名、字段名要小写,下划线风格,不超过32个字符,必须见名知意,建议使用名词而不是动词,词义与业务、产品线等相关联,禁止拼音英文混用。
说明:比如商城项目生产库命名为mall_prod,开发库命名为mall_dev,订单表order_info,订单明细表 order_detail_info;
2.【强制】普通索引命名格式:idx_表名_索引字段名(如果以首个字段名为索引有多个,可以加上第二个字段名,太长可以考虑缩写),唯一索引命名格式:uk_表名_索引字段名(索引名必须全部小写,长度太长可以利用缩写),主键索引命名:pk_ 字段名
说明:比如idx_student_info_stu_name,uk_student_info_stu_num,pk_id;
3.【强制】库名、表名、字段名禁止使用MySQL保留字;
说明:MySQL的保留字是指数据库系统自身保留并用于特定功能的标识符,比如LIKE、OR、AND等等,具体见官网:
https://dev.mysql.com/doc/refman/5.7/en/keywords.html
4.【强制】临时库表名必须以tmp为前缀,并以日期为后缀;
说明:比如tmp_user;
5.【强制】备份库表必须以bak为前缀,并以日期为后缀;
说明:对mall_dev库进行备份后,名称为bak_mall_dev_20240509;
6.【推荐】用HASH进行散表,表名后缀使用16进制数,下标从0开始;
说明:十六进制数(也称为Hexadecimal数)是一种基数为16的计数系统,使用数字0-9和字母A-F(不区分大小写)来表示数值。其中,字母A-F分别表示数字10-15。
7.【推荐】按日期时间分表需符合 YYYY [MM] [DD] [HH] 格式;
说明,比如按月分表order_info_202401;
8.【推荐】散表如果使用md5(或者类似的hash算法)进行散表,表名后缀使用16进制。
说明,比如user_ff;
9.【推荐】使用CRC32求余(或者类似的算术算法)进行散表,表名后缀使用数字,数字必须从0开始并等宽,比如散100张表,后缀从00-99;
10.【推荐】使用时间散表,表名后缀必须使用特定格式,比如按日散表user_20110209、按月散表user_201102;
11.【强制】表达是与否概念的字段,使用 is _ xxx 的方式进行命名;
说明,比如字段是否启用is_open;
三、总结
以上介绍了在进行MySQL数据库开发设计时,命名相关的技术规范。希望对大家有帮助,谢谢 :-)
附本文参考资料:
- 阿里云官方知乎:https://www.zhihu.com/org/a-li-yun-97-77
- 阿里云开发者官方社区:https://developer.aliyun.com/
- 阿里开发者官方CSDN社区:https://blog.csdn.net/alitech2017?type=blog
- 阿里云云栖号CSDN:https://blog.csdn.net/yunqiinsight/category_10231626.html
- 阿里巴巴技术团队发布的《JAVA开发手册》泰山版
- 阿里云开发者官方微信公众号
如果您对文章中内容有疑问,欢迎在评论区进行留言,我会尽量抽时间给您回复。如果文章对您有帮助,欢迎点赞、收藏。您的点赞,是对我最大的支持和鼓励,谢谢 :-)