一、什么是范式
范式就是在创建数据库是为了减小冗余,使结构合理而设计的必须遵循的规则,是在设计关系型数据库时必须满足的要求。
二、三大范式
1.第一范式
第一范式是确保每列的原子性,即保证所有字段都是不可分解的原子值。
如上图为一个用户表,address字段包含了省、市、详细地址,这样设计是不满足第一范式的。将address字段划分成省份、城市、详细地址,这样对每个字段都可以进行单独操作,而且非常方便,比如查询用户的省份信息。
2.第二范式
第二范式是避免数据列中出现重复数据。
如上图为一个订单表,如果用户Daniel在同一时间下单三次,这样用户信息是重复的,造成了数据冗余,我们可以把订单表和用户信息拆开。
3.第三范式
第三范式是保证表中每列数据都和主键之间相关。
设计表如第二范式中的订单表,用户信息与订单并不是直接相关的,所以将用户id作为外键与订单表建立联系,在生成订单表和查询订单表是减少了第用户信息的操作,减小额数据冗余。