2012-03-17 39 views
0

1場具有至少1講如何在MySQL中設置這些表的關係?

1講座可以具有0個或多個教程

1講座可以具有0個或多個實驗室

1教程可以具有0個或多個實驗室

這我的桌子是如何設置的: This is how my tables are setup for the moment

我遇到過兩種不同的課程情況:

1 - 對於給定的演講,您有0個教程,但有2個實驗部分(您只選擇1個實驗室) - >所以1個lec + 1個實驗室 2 - 對於給定的演講,您有2個教程和2個教程與每個相關聯的教程實驗室 - >所以1個LEC + 1個嘖+ 2個實驗室

我的結構將用於情形#1失敗(因爲0 TUT將制動LEC和LAB之間的鏈路)


替代結構(由octern建議):

課程 - LEC

LEC - TUT

LEC - LAB

這樣做的問題是:我怎麼確定學生參加1級或2的實驗室?

回答

0

如果您所描述的規則完全準確,那麼您提出的關係是正確的。 「1個教程可以有0個或更多個實驗室」意味着每個實驗室都與(至少?)一個教程相關。但是當你說,「如果一個講座沒有教程,但只有一個實驗室,這會失敗」,你說這些規則不能準確地模擬這種情況。你在說實驗室與講座有關,不是教程。所以TUTLAB上的外鍵都應該是lec_id

+0

謝謝octern,你提出的結構,我如何確定學生是否需要1或2個實驗室? – user666923 2012-03-17 22:29:19

+0

您以前的模型會如何確定?現在,我沒有看到數據庫中的任何內容談論學生需要註冊的內容。 – octern 2012-03-18 07:33:52