MySQL数据库建表的三大范式

第一范式

表的每一列都是最小的不可分割的原子值。

错误表实例:

MySQL数据库建表的三大范式_第1张图片

正确表实例:

MySQL数据库建表的三大范式_第2张图片

MySQL数据库建表的三大范式_第3张图片

第一范式的好处:

        1. 减少了数据冗余

        2. 更利于数据的维护和更新 

第二范式

在第一范式的基础上,要求一个表中的所有字段都必须和主键有关。

这个表中是以订单编号和商品编号作为联合主键。在该表中商品名称、单位、商品价格等信息不与该表的主键相关,而仅仅是与商品编号相关。所以在这里违反了第二范式的设计原则。

错误表实例:

MySQL数据库建表的三大范式_第4张图片

正确表实例:

MySQL数据库建表的三大范式_第5张图片

MySQL数据库建表的三大范式_第6张图片 

MySQL数据库建表的三大范式_第7张图片

第二范式的好处:

        1. 利于维护和修改

        2. 利于展示

第三范式

在第一和第二范式的基础上,要满足所有的字段不能出现对非主键的依赖。

错误表实例:

MySQL数据库建表的三大范式_第8张图片

 正确表实例:

MySQL数据库建表的三大范式_第9张图片

MySQL数据库建表的三大范式_第10张图片

第三范式优点:

        1. 实现列和非主键列的解耦(即就是修改了一个字段不会影响其它字段)

你可能感兴趣的:(mysql,mysql,sql,数据库)