第一范式
属性(字段)的原子性约束,要求属性具有原子性,不可再分割;
比如个人信息,个人信息不能作为一个字段,它可以再分为姓名、name、age等;
第二范式
记录的惟一性约束,要求记录有惟一标识,每条记录需要有一个属性来做为实体的唯一标识;
第三范式
字段冗余性的约束,即任何字段不能由其他字段派生出来;主键没有直接关系的数据列必须消除,消除的办法就是再创建一个表来存放他们,当然外键除外;
误区
并不是非得严格按照三范式来设计,好的数据库设计一定不是这样的,而是根据实际情况柔性处理
比如公司资产清点表:
名称、单价、数量、总价;
这显然是违背了第三范式的,因为总价可以由单价*数量得出
但是实际生产中,三范式只是作为参考,像以上的表设计是可以接受的,我们可以直接查出总价,不用再单独计算,就多了一个字段而已,从而节约了开发成本。