多对多关系,即使使用 Link table

Many to Many relationship even when using Link table

我正在创建一个数据库,我需要在其中创建 'Modules' 和 'Degree' 之间的关系 - 基本上模块构成了学位 - 例如: 模块 CS 1 是计算机科学的一部分 模块 CS 2 是计算机科学的一部分 模块 PHIL 1 是哲学的一部分 等等

我的table格式是这样的: 模块 -> 形式 -> 学位

模块包含模块名称和模块 ID (PK)

表单包含模块 ID 和学位 ID(均为 FK)

学位包含学位名称和学位 ID (PK)

我似乎有一个问题,无论如何,都会有一个多对多的关系,因为会有多个模块 ID 与一个学位 ID 相关联。

有办法解决这个问题吗?

这不会是一个多对多关系,事实上,这就是 "bridge" table 表单的全部目的。

见下图。在基本的ER Diagram(Entity Relationship Diagram,大家可以看看here)中,可以看到如下内容:

  • Module 和 Form 之间存在 ONE-TO-MANY 关系 (即,一个模块 ID 可以在表单 Table 中出现多次,但该模块 ID 只会在模块 table 中出现一次)
  • Form 和 Degree 之间存在 ONE-TO-MANY 关系 (即,一个学位 ID 可以在表格 Table 中出现多次,但该学位 ID 只会在学位 table 中出现一次)

您的桥接架构和用法table确实是消除多对多关系的一种方法,干得好。