2011-10-27 106 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

相關問題