2013-03-23 68 views
0

我有一個簡單的問題,但我仍然對此感到困惑。SQL:ER模型,外鍵

每當你設計ER模型時,你應該如何繪製PK和FK的?

比方說,我有兩個表,用戶和國家

User 
ID | firstName | lastName | FKCountry 
1 | John  | Stewart | 1 
2 | Paul  | Duschmol | 2 
etc. 

Country 
ID | country  | code 
1 | Germany  | GER 
2 | Switzerland | CH 
etc... 

嗯,我應該在ER模型中添加列「FKCountry」與否?我的意思是,兩個實體之間會有關係(菱形),但是我應該明確地添加用戶實體的「FKCountry」嗎?

希望我的問題是明確的,預先感謝您:)

回答

1

是的,您應該將FKCountry添加到ER圖中的User表中。如果該列存在於您的表中,它應該在實體中表示。關係標記連接Country.IDUser.FKCountry應該毫無疑問。僅僅因爲在這個例子中顯而易見並不意味着在其他關係中,鏈接的列可能不會完全不同且不明顯。

2

Foreign Key的主要目的是加強這兩個表之間的參照完整性。

如果CountryUser的關係是One-to-Many那麼它應該是罰款上表User加入柱FKCountry

然而,如果關係是Many-to-Many其中Country可以有很多User以及User屬於多個Country,然後3表設計非常優選。其中第三張表是另外兩張之間的關聯表。