三大范式

范式,数据设计的规范。优化数据存储方式。

第一范式:

保证数据字段的原子性。即每一个字段不可再分割。

比如:一张用户表,字段:姓名,性别,年龄,地址。 其中的地址就不满足原子性。地址一般会分割为省,市,区。便于业务上对地址条件的筛选和功能扩展。

第二范式:

数据记录的惟一性,非关键字段完全依赖,不部分依赖。(满足第一范式前提下)

比如:一张房间订单表,字段:订单号,姓名,身份证,房间号,手机号。 当一个人订多个房间时,数据记录信息,得身份证号,手机号就是重复的。

可以改为 订单号(主键),姓名,房间号 和  姓名(主键),身份证,手机号 两种表。

第三范式:

表中的每一列都要与主键直接相关,而不是间接相关(表中的每一列只能依赖于主键)。(满足第一,第二范式前提下)

比如 订单号(主键),userid,姓名,房间号 和  userid(主键),姓名,身份证,手机号 两种表

虽然已经拆表了,但是第一张表的姓名关联userid,userid在关联订单号。关联表只存主键字段。

范式的优缺点

  • 优点
  • 结构合理
  • 冗余较小
  • 尽量避免插入删除修改异常
  • 缺点
  • 性能降低
  • 多表查询比单表查询速度慢
原文地址:https://www.cnblogs.com/anyihen/p/12327283.html