MySql数据库规范
一、建库规范
(1)、库名必须使用小写字母,“_”分割。
(2)、库名必须不超过12个字符。
(3)、字符集选择UTF8。如果需要存储表情,那么选择utf8mb4来进行存储,注意它与utf-8编码的区别。
二、.建表规范
(1)、表名必须使用小写字母,“”分割,表的命名最好是加上“业务名称表的作用。
(2)、新表必有字段参见—>公共字段规约。
(3)、新表必有comment中文注释,方便其它开发人员查看。
(4)、表名总长度不超过26个字符。
(5)、建议使用InnoDB存储引擎。
三、字段规范
(1)、字段名必须使用小写字母,“_”分割。一般采用简写,关键字要准确,避免歧义。
(2)、字段名原则上不超过20个字符,且必有comment注释。
(3)、表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 tinyint ( 1表示是,0表示否)。
(4)存储精确浮点数统一使用【decimal】(长度10,小数点2)替代【float】和【double】。如果存储的数据范围超过 decimal 的范围,建议将数据拆成整数和小数分开存储。
(5)存储时间统一使用【datetime】(长度0)。
(6)、若是表关联字段,必须注明所关联表的表名及字段名。
(7)、字段名禁用保留字,如 desc、range、match、delayed 等等,请参考 MySQL 官方保留字。
四、.索引
(1)、业务上具有唯一特性的字段,必须建成唯一索引
(2)、索引中的字段数建议不超过5个。
(3)、单张表的索引数量控制在5个以内。
(4)、多表关联查询时,保证被关联的字段需要有索引。
五、SQL规约
(1)、超过三个表的 join尽量避免。需要 join的字段,数据类型要保持绝对一致。
(2)、SELECT语句只获取前端需要的字段(禁止使用万能SQL:select *进行查询)。
(3)、禁止使用存储过程,存储过程难以调试和扩展,更没有移植性。
(4)、对于线上数据或表字段的操作,必须以SQL的形式交于运维人员执行,便于回退。六、公共字段规约
字段名类型长度是否为空备注
id int11否主键(自增),步长为1
no varchar64否业务编号(用于业务处理、表关联)create_user varchar32否创建人
查看mysql索引
create_time datetime0否创建时间
update_user varchar32是修改人
update_time datetime0是修改时间
is_deleted tinyint1否逻辑删除(0正常 1删除)
remark varchar64是备注