且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

数据库设计三范式(理解只需五分钟)

更新时间:2021-12-27 20:03:00

第一范式


属性(字段)的原子性约束,要求属性具有原子性,不可再分割;

比如个人信息,个人信息不能作为一个字段,它可以再分为姓名、name、age等;


第二范式


记录的惟一性约束,要求记录有惟一标识,每条记录需要有一个属性来做为实体的唯一标识;


第三范式


字段冗余性的约束,即任何字段不能由其他字段派生出来;主键没有直接关系的数据列必须消除,消除的办法就是再创建一个表来存放他们,当然外键除外;


误区


并不是非得严格按照三范式来设计,好的数据库设计一定不是这样的,而是根据实际情况柔性处理


比如公司资产清点表:

名称、单价、数量、总价;

这显然是违背了第三范式的,因为总价可以由单价*数量得出


但是实际生产中,三范式只是作为参考,像以上的表设计是可以接受的,我们可以直接查出总价,不用再单独计算,就多了一个字段而已,从而节约了开发成本。