mysql设计规范

2022-02-17  本文已影响0人  阿duang_638a

命名规范

库命名规范

表命名规范

字段命名规范

索引命名规范

类型规范

用尽量少的存储空间来存储一个字段的数据
能用int就不用varchar,char,能用varchar(10)就不用varchar(255)
IP地址最好用INT类型
固定长度的类型最好使用char,例如:邮编
能使用tinyint就不要使用smallint, int
最好每个字段一个默认值,最好不能为Null

索引规范

为每个表创建一个主键索引
为每个表创建合理的索引

建立复合索引请慎重

三范式

第一范式:字段值具有原子性,不能再分(所有关系型数据库系统都满足第一范式)

例如:姓名字段,其中姓和名是一个整体,如果区分姓和名那就必须设立两个字段

第二范式:一个表必须有主键,即每行数据都能被唯一区分

备注:必须先满足第一范式

第三范式:一个表中不能包含其他相关表中非关键字段的信息,即表数据中不能用冗余字段

备注:必须先满足第二范式
一般不需要完全遵循第三范式,因为过度的工程化会导致项目过度细化而影响系统整体性能
例如:老师和学生都有账号,密码等,如果把老师账号和学生账号冗余在其信息表内,而学生账号放在学生信息表内,其实没有影响其整体的存储,但这样的效率省了大量的join操作,提升了性能,(就算拆成几张表也无法节省内存,也只会占用更多的硬盘空间,或内存空间)血的教训!!!!

掘金 Mysql数据库设计规范

博客园 MYSQL数据库设计规范与原则

知乎「MySQL」 - SQL设计规范

知乎 MySQL 数据表设计规范

LC社区 MySQL数据库表设计规范

阿里 数据库设计规范

上一篇下一篇

猜你喜欢

热点阅读