三大范式
第一范式
第一范式(确保每列保持原子性)
- 每一列属性都是不可再分的属性值,确保每一列的原子性
- 两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据。
第二范式
第二范式(确保表中的每列都和主键相关)
- 每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。
第三范式
第三范式(确保每列都和主键列直接相关,而不是间接相关)
- 数据不能存在传递关系,即没个属性都跟主键有直接关系而不是间接关系。
最后:
三大范式只是一般设计数据库的基本理念,可以建立冗余较小、结构合理的数据库。如果有特殊情况,当然要特殊对待,数据库设计最重要的是看需求跟性能,需求>性能>表结构。所以不能一味的去追求范式建立数据库。