天天看点

sql 三大范式

关系模型原理的核心是“规范化” 概念,当然用数据库的目的是帮我们整理复杂,繁多的数据。规范化是可以将数据的冗余最小化,也就是节约存储空间,但在实际的项目开发中,难免会为了开发效率,而牺牲存储空间,我们在设计数据库应该是尽量的满足这些规范,我们把这种规则称为范式。

范式分为6种:第一范式(1nf)、第二范式(2nf)、第三范式(3nf)、Boyce-Codd范式(bcnf)、
第四范式(4nf)和第五范式(5nf)。
           
现在一般的电商网站应该满足前三个范式的要求。当然满足的范式越高,你存储数据花费的成本越低。
 但不代表你的运营成本越低,当处理逻辑查询的时候,CPU的开销和你宽带的开销,都得考虑进来。
 范式理论是一个逐级递增的过程,只有满足了第一范式,才能考虑满足不满足第二范式。
           

**

第一范式:1.一行中每个属性只能包含一个值,(不可拆分)

2.一行中必须包含相同的数据

3.不能有相同的行

第一条!

sql 三大范式

当商品存在多个属性的时候,我们应该建立属性商品关联表,一会我会写一篇关于商品SKU和SPU的文章

第三条意思是表里不能有两行一某一样的数据,这个应该不会再开发过程中出现,

因为有ID的存在。

第二范式:
      如果一个数据表已经满足第一范式,而且该数据表中的任何一个非主键字段的数值都依赖于
      该数据的主键字段,那么该数据表满足第二范式。一个汽车的部件表里,但是假如数
      你在这个表里加一个矿泉水的列,那么这样就不符合第二范式。
           
第三范式:
 如果一个数据表已经满足第二范式,而且该数据表中的任何两个非主键的数据值之间不存在函数依赖关系,那
 么该数据表满足第三范式。
 简单的数就是一个列的数据不能由另外一个列的数据计算出来。比如说,你的商品的售价是成本价的1.2倍
。

小菜报道,多多指教。