- 作者:admin
- 发表时间:2020-11-28 07:50
- 来源:未知
这篇文章主要介绍了专业级的MySQL开发设计规范及SQL编写规范,需要的朋友可以参考下
在团队开发过程中为了项目的稳定,代码的高效,管理的便捷制定内部种开发设计规范是必不可少的,
这里分享一份我们定义MySQL开发设计规范包括表设计规范,字段设计规范,SQL编写规范
数据库对象命名规范数据库对象命名规范的对象是指数据库SCHEMA、表TABLE、索引INDEX、约束CONSTRAINTS等的命名约定
数据库对象命名原则命名使用具有意义的英文词汇,词汇中间以下划线分隔
命名只能使用英文字母、数字、下划线
避免用MySQL的保留字如:call、group等
所有数据库对象使用小写字母
数据库命名规范数据库名不能超过30个字符
数据库命名必须为项目英文名称或有意义的简写
数据库创建时必须唐山网络公司添加默认字符集和校对规则子句。默认字符集为UTF8(已迁移dumbo的使用utf8mb4)
命名应使用小写
表命名规范同一个模块的表尽可能使用相同的前缀,表名称尽可能表达含义
多个单词以下划线(_)分隔
表名不能超过30个字符
普通表名以t_开头,表示为table,命名规则为t_模块名(或有意义的简写)_+table_name
临时表(运营、开发或数据库人员临时用作临时进行数据采集用的中间表)命名规则:加上tmp前缀和8位时间后缀(tmp_test_user_20181109)
备份表(DBA备份用作保存历史数据的中间表)命名规则:加上bak前缀和8位时间后缀(bak_test_user_20181109)
命名应使用小写
字段命名规范字段命名需要表示其实际含义的英文单词或简写,单词之间用下划线(_)进行连接
各表之间相同意义的字段必须同名
字段名不能超过30个字符
用户命名规范生产使用的用户命名格式为 code_应用
只读用户命名规则为 read_应用
数据库对象设计规范存储引擎的选择如无特殊需求,必须使用innodb存储引擎
字符集的选择如无特殊要求,必须使用utf8或utf8mb4
表设计规范不同应用间所对应的数据库表之间的关联应尽可能减少,不允许使用外键对表之间进行关联,确保组件对应的表之间的独立性,为系统或表结构的重构提供可能性
表设计的角度不应该针对整个系统进行数据库设计,而应该根据系统架构中组件划分,针对每个组件所处理的业务进行数据库设计
表必须要有PK
一个字段只表示一个含义
表不应该有重复列
禁止使用复杂数据类型(数组,自定义等)
需要join的字段(连接键),数据类型必须保持绝对一致,避免隐式转换
设计应至少满足第三范式,尽量减少数据冗余。一些特殊场景允许反范式化设计,但在项目评审时需要对冗余字段的设计给出解释