三大范式

先总结:第一:所有字段都应该是原子的,不可拆分的。第二:所有字段都应该完全依赖于所有主键,不得有部分依赖。第三:字段应该只依赖于主键,不得依赖于其他字段。

从这里可以看到,第二、三范式都是讲其他字段对于主键的依赖,既不能部分依赖主键,又不能依赖非主键字段。

第一范式

不用说了,字段的定义都应该是不可拆分的。

第二范式

在下面这个订单表里,有产品id,用户id,产品名、用户名,其中产品名和用户名分别只依赖于它们的id,不依赖于所有主键。这就不满足第二范式了。

三大范式_第1张图片

解决方法:拆表,把用户名和产品名拆出去,到另外的表里。

三大范式_第2张图片

第三范式

如下,myorder表里,用户手机号字段虽然依赖于order_id,但同时也依赖于别的字段(customer_id),这就存在传递依赖。

三大范式_第3张图片

解决方法:拆出去,到用户表里。

三大范式_第4张图片

 

你可能感兴趣的:(设计模式)