即使使用链接表时,多对多关系

时间:2018-11-26 20:12:08

标签: sql database entity-relationship-model

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

我的表格格式如下: 模块->表格->学位

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

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

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

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

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

实际上,这不是多对多关系,这就是“桥”表表单的全部用途。

请参见下图。在基本的ER图(实体关系图,您可以了解它们here)中,可以看到以下内容:

  • 模块和表单之间存在一对多关系 (即,一个“模块ID”可以在“表格”表中出现很多次,但该“模块ID”在“模块”表中只会出现“一次”)
  • 形式与学位之间存在一对多关系 (即,一个学位ID可以在“表格”表中出现很多次,但那个学位ID在“学位”表中只会出现一次)

您的架构和桥表的使用确实是消除多对多关系的好方法。

enter image description here