前言
本文内容主要参考自《MySQL DBA 修炼之道》书中的第四章,算是原书的实践与补充。 上次主要讲了MySQL的索引与 EXPLAIN 的用法,是MySQL中非常重要的一部分,这次将进入下一部分,有关数据库的设计。
I. 三大范式
α. 范式含义
范式是数据库规范化的手段,那么啥又是数据库规范化 ?
数据库规范化通俗的来讲就是经过合理的设计,将大表分成很多有关联关系的小表,这样来去除数据的冗余;好处是写方便,数据一致性高,毕竟维护数据的部分工作都交给数据库处理了;缺点也显而易见,因为数据分散了,所以读数据麻烦,需要关联查询多个表才能获得最终完整的数据。
β. 第一范式(1NF)
属性不可分割,即列不可分割。
1NF主要保证每一个字段都是原子的,不可再分。举一个例子,商品表中每个商品对应都有商品参数,这其实是一个一对多的关系,比如手机参数包括品牌、型号、网络制式等。那么笼统的将商品参数直接作为一个字段,