<aside> ⚠️ 通常情况下,字段应该避免允许为NULL。不允许为NULL可以简化查询条件,加快查询速度,也利于应用程序读取数据后无需判断是否为NULL。

</aside>

基本关系模型

主键

对于关系表,有个很重要的约束:任意两条记录不能重复。

<aside> ⚠️ 这里的不能重复指的是能通过某个字段唯一区分出不同的记录,这个字段叫做主键。

</aside>

选取主键的基本原则:

联合主键

要求两列或多列主键不完全重复即可。

<aside> ❕ 没有必要的情况下,我们尽量不使用联合主键,因为它给关系表带来了复杂度的上升。

</aside>

外键

用来表达“一对多”的关系。比如一个 classes 的记录可以对应多个 students 的记录。

为了表达这种一对多的关系,我们需要在 students 表中加入一列 class_id ,让它的值与 classes 表的某条记录相对应

Untitled

外键通过定义外键约束实现: