# 数据库设计中的自由与约束
数据库设计时,遵从不同的规范要求设计合理的关系型数据库,这些不同的规范要求被称为不同的范式,越高的范式数据库冗余越小。
目前最常用的范式有第一方式(1NF
),第二范式(2NF
),第三范式(3NF
)与第四方式(4NF
),它们的数据冗余逐级减小,简而言之,1NF
拥有最多的冗余数据。
# 使用范式设计一个学生与班级的数据库
以一个最简化的数据库举例:学生的属性姓名及学号,班级的属性有班级名及班级编号
# 1NF
- 202001, 张三, 100, 高三一班
- 202002, 李四, 100, 高三一班
- 202003, 王五, 100, 高三一班
- 202004, 三藏,100, 西游一班
- 202005, 悟空,100, 西游一班
- 202006, 八戒,100, 西游一班
自由度与约束来讲极其不合理
会不会出现
# 2NF
# 3NF
# 过高的范式与灵活性
理想主义者敲代码有时会很难受:越高的约束有时意味着更少的自由度,更弱的灵活性。