我如何解释这两个实体之间的关系?

时间:2011-10-27 22:46:16

标签: mysql database

我有两个实体,Class和Student_Class。以下是实体:

Class:

ClassId (PK)         int (5)
ClassDay              varchar(9)
ClassTime            time
ModuleId (FK)    varchar(10)
TeacherId (FK)    varchar(4)

Student_Class:

ClassId (PK)         int(5)
StudentId (PK)    varchar(6)

我的问题是我不知道如何解释这种关系。是一个student_class属于一个类,并且在类上可能有许多student_classes或反之亦然,因为我不确定哪个是有趣的,因为我创建了这个关系。起初我认为这是一个多对多的关系,但它不可能是因为Student_class介于学生和班级实体之间。

1 个答案:

答案 0 :(得分:2)

你需要一个第三个实体 - 学生PK为StudentId。

您的Student_Class基本上是一个“交叉引用”表。它允许多对多关系。它应该有两个FOREIGN KEYS(不是PK)。如果愿意,可以为键添加两个索引。

这样,每个学生都可以拥有任意数量的Classes链接。然后,您可以选择学生所拥有的课程列表,或者给定课程中的所有学生。