2016-11-07 100 views
0

this lecture他們提到了1:1的關係。數據庫:1:1的關係

可以代表1:1的關係如下:一位講師只教一個學科。可以通過將subject_id添加到講師表中或將lecturer_id添加到主題表中來完成。

enter image description here

我有一個關於任何解釋或者我的理解有些疑惑。

讓我們以第一個例子爲主講者表添加subject_id。

LECTURE_ID LECTURE_NAME SUBJECT_ID 
4   Kolmogorov 6 
5   Schmidt  6 

所以,實際上兩位講師可以教授一個科目,它不是1:1的關係。

讓我們把第二個例子與lecturer_id添加到主題表。

SUBJECT_ID SUBJECTE_NAME LECTURER_ID 
5   Math   1 
6   Arts   1 

一位講師講授了兩個不同的主題。

有什麼我失蹤?或者外鍵只能在表中出現一次?由於on this page外鍵(P_id)在「訂單」表中出現兩次。

+0

每個關係都是正確的。但沒有人說這兩個都適用於同一時間。 –

+0

如果它始終是1比1並且索引良好,那有什麼關係?另外,爲什麼不設計它,以便當多位講師講授數學101時,你有相交/聯結表。[Junction Tables](http://stackoverflow.com/a/32620163) – Drew

+0

@juergend這個想法是爲了說明1:1這意味着只有一位講師只能講授一門課。這可以通過將subject_id放置在講師表中來實現。但我已經建立了一個兩個不同的講師講授一個主題的例子。我想我錯過了一些外鍵的限制。 – Anni

回答

1

那麼,這些解決方案都不是最佳的。但是如果你必須選擇,我會說LECTURER_ID應該是SUBJECT表中的外鍵。

但我會建議你喲使用博伊斯科德正常形式。然後你會創建三個表格。

LECTURER

LECTURE_ID(PK) LECTURE_NAME 
4    Kolmogorov 
5    Schmidt 

SUBJECT

SUBJECT_ID(PK) SUBJECTE_NAME 
5    Math 
6    Arts 

LECTURER_SUBJECT

LECTURE_ID(PK)(FK) SUBJECT_ID (PK)(FK) 
4     5 
4     6 

這樣,講師可以有多個科目,主題可以有多個講師。