范式原则【也称三大范式 主要有三点】
- 每一列保持原子性 不可分割
- Eg: 表示地址时--省市区街道 这些信息不要放在同一个字段 因为这些信息是可拆分的 应该分为四个字段 -- 省、市、区、街道 这样便满足了不可分割性
- 每一列都要跟主键相关 即一张表应该只描述一个对象
- 每一列都应该是跟主键直接相关 而不是间接相关
- Eg:用户表--公司ID--公司名称 名称就是间接相关了
范式原则的优与缺
与范式定义相违背的 即**反范式** 反范式的数据中 信息是冗余 范式中的第三点 反范式是容许间接相关存在的
优点
* 范式化的更新操作 往往快于反范式
* 很少或没有重复的数据
* 表通常更小 执行操作更快
* 冗余少--Distinct、Group by 就用的少
缺点
* 范式化的设计离不开-关联 越是复杂的查询 关联的次数就会越多 //反范式化 则容许冗余 可避免一定的关联 所以实际设计往往都是 范式+反范式 相互结合使用