多对多

在选课系统中,有学生和课程两个实体,一个学生可以选修多门课程,一门课程也可以有多个学生选修,这就构成了多对多的关系。在关系数据库中,为了表示学生和课程之间的多对多关系,通常会使用一个中间表,比如选课表。这个表可以记录每个学生选择了哪些课程,每门课程被哪些学生选修。这样的设计可以很好地表示学生和课程之间的多对多关系。

ER 关系如下

alt text

字段配置

alt text

参数说明

Source collection

源表,也就是当前字段所在表。

Target collection

目标表,与哪个表关联。

Through collection

中间表,当两个实体之间存在多对多的关系时,需要使用中间表来存储这种关系。中间表有两个外键,用于保存两个实体之间的关联。

Source key

外键约束引用的字段,必须具备唯一性。

Foreign key 1

中间表的字段,用于建立与源表之间的关联。

Foreign key 2

中间表的字段,用于建立与目标表之间的关联。

Target key

外键约束引用的字段,必须具备唯一性。

ON DELETE

ON DELETE 是指在删除父表中的记录时对相关子表中的外键引用的操作规则,它是用于定义外键约束时的一个选项。常见的 ON DELETE 选项包括:

  • CASCADE:当删除父表中的记录时,自动删除子表中与之关联的所有记录。
  • SET NULL:当删除父表中的记录时,将子表中与之关联的外键值设为 NULL。
  • RESTRICT:默认选项,当试图删除父表中的记录时,如果存在与之关联的子表记录,则拒绝删除父表记录。
  • NO ACTION:与 RESTRICT 类似,如果存在与之关联的子表记录,则拒绝删除父表记录。