0
点赞
收藏
分享

微信扫一扫

Mysql的设计优化


1. 关系明确(理清表之间的关系,可以通过冗余的方式提高效率)
2. 节省空间(根据业务经验,设置字段长短)
3. 提高效率

在设计表字段建议,使用8字节的主键bigint,而不是直接使用int来做主键。

varchar 不存的时候不占空间,存多长数据就占多少空间

 

符合三范式数据库表

1NF:列不可分。每一列都是不可分割的基本数据项,如这样的设计就不合理,姓名(王五,wangwu)
2NF:1NF的基础上面,非主属性完全依赖于主关键字,如学生姓名(非主属性)就是依赖于学号(主属性)的。
3NF:属性不依赖于其它非主属性 , 消除传递依赖,如这样的设计就不合理,学号做主键,学生课程表(学号=课程),当学号修改,对应的课程表也需要修改,这就是属于传递依赖
BCNF:符合3NF,每个表中只有一个候选键
4NF:没有多值依赖
由于学号不能做主键,那用什么做主键?首先就有这样的规则:不要用业务规则来做主键,主键就应该和业务无关。
如经常用的的order_no(业务订单号),即使是唯一的,也不建议做主键的,容易产生传递依赖的问题,这样就不符合第三范式了。

举报

相关推荐

0 条评论