数据库设计三大范式
范式就是数据库表设计的依据,教你怎么进行数据库表的设计的。
● 第一范式:要求任何一张表都必须要有主键,每一个字段原子性不可再分。
● 第二范式:建立在第一范式的基础之上,要求所有非主键字段完全依赖主键,不要产生部分依赖。对应:多对多,三张表,关系表两个外键。
● 第三范式:建立在第二范式的基础之上,要求所有非主键字段直接依赖主键,不要产生传递依赖。对应:一对多,两张表,多的表加外键。
设计数据库表的时候,按照以上的范式进行设计,可以避免表中数据的冗余,空间的浪费。
口诀:
● 多对多,三张表,关系表两个外键!!!
● 一对多,两张表,多的表加外键!!!
● 一对一,外键唯一!!!
● 一对一,在实际的开发中,可能存在一张表字段太多,太庞大,这个时候就要拆分表。
实际和理论有的时候是有误差的,有的时候会拿冗余去换执行速度。
有的时候存在冗余,但是为了减少表连接的次数,这么做也是合理的,并且对于开发人员来讲,sql语句的编写难度,也会降低。