数据库设计规范

一、基础规范

1、必须使用InnoDB数据库存储引擎

支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高

2、表字符集默认使用utf-8,必要时候使用utf8mb4

通用,无乱码风险,汉字3字节,英文1字节。2、utf8mb4是utf8的超集,有存储4字节例如表情符号时,使用它

3、数据表、数据字段必须加入中文注释

随着时间的增长,你的数据库表会越来越多,字段也会越来越多,谁也不能能全部记住每张表或每个字段是做什么的,so 给它们添加注释

4、数据表、数据字段必须加入中文注释

a).对于互联网应用来说业务层能做的事情就不要放到数据库层上来操作,对数据库性能影响较大,甚至会宕机;
b).调试,迁移,排错,可扩展性;

5、禁止将大文件或影像文件存储到数据库中

有文件存储服务器不用,干嘛要存到数据库中,数据库也不是它的归宿啊;

二、数据库命名规范

1、库名,表名,列名必须用小写,根据业务模块不同采用下划线分隔

a).Sys_User = sys_user
b).举个🌰:sys_xxx 系统_xxx表 🙂

2、库名,表名,列名必须见名知义,长度不要超过32字符,禁止拼音英文混用

temp yhm 时间久了 谁知道这是干嘛用的 ,智障吗 🔨

3、数据库索引

a).索引是一把双刃剑 ,索引的占用空间是成倍增长的,并且还会增加IO读写,
b).一张表索引的数量控制在5个以内,或者不要超过表字段数量的20%

4、索引设计规范

a).禁止在更新十分频繁、区分度不高的属性上建立索引;
b).更新会变更B+树,更新频繁的字段建立索引会大大降低数据库性能;
c).“性别”这种区分度不大的属性,建立索引是没有什么意义的,不能有效过滤数据,性能与全表扫描类似。一般来说,同值的数据超过表的百分之十五,那就没必要建索引了;
d).建立组合索引,必须把区分度高的字段放在前面,理解组合索引最左前缀原则,避免重复建设索引,如果建立了(a,b,c),相当于建立了(a), (a,b), (a,b,c)