2011-10-27 85 views
0

我有两个实体,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进入了Student和Class实体之间。

回答

2

您需要一个THIRD实体 - StudentId PK的学生。

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

这样一来,每个学生都可以拥有尽可能多的指向课程的链接。然后,您可以选择一个学生拥有的班级列表,或者某个班级的所有学生。

+0

嗨,谢谢我有一个studentId的学生实体,它链接到学生课,但我不知道这个问题是否有必要。谢谢你的回答,虽然 – BruceyBandit

+1

FYI,它被称为*关联*表。这些行上的额外列(例如“dropped_out boolean”)被称为*关联数据*。 – Bohemian

相关问题