范式与反范式,范式追求不同表中的不重复存储,反范式可以重复存储一张表里。每张表一定要有一个主键,自增主键只推荐用在非核心业,核心业务表推荐使用 UUID 或业务自定义主键,可以通过 JSON 数据类型进行反范式设计。

  • 第一范式(1NF):确保原子性,设计字段应该将字段拆分成具体的不可拆分的字段
  • 第二范式(2NF):确保唯一性,一张表只存储同一类型的数据,不能有任何一列数据与主键没有关系,设计表时确保每个表只保存一类对象的不同属性
  • 第三范式(3NF):确保独立性,要求表中每一列数据不能与主键之外的字段有直接关系
  • 巴斯-科德范式:是第三范式的补充,在第三范式的基础上,进一步要求:任何主属性不能对其他主键子集存在依赖。即规定了联合主键中的某列值,不能与联合主键中的其他列存在依赖关系