我正在嘗試將數據庫從ER模型轉移到關係數據庫。 但是,我很不確定我的解決方案是否合理。特別是,location
和has
之間的這兩種關係造成了很大的問題。我以爲我可以添加一個ZipCode作爲常規主鍵到表中,第二個ZipCode作爲外鍵。如果有人能幫助我,我將非常感激。 E-R模型到關係數據庫,其中一個實體在一個關係中有兩次
我至今解決方案:
我正在嘗試將數據庫從ER模型轉移到關係數據庫。 但是,我很不確定我的解決方案是否合理。特別是,location
和has
之間的這兩種關係造成了很大的問題。我以爲我可以添加一個ZipCode作爲常規主鍵到表中,第二個ZipCode作爲外鍵。如果有人能幫助我,我將非常感激。 E-R模型到關係數據庫,其中一個實體在一個關係中有兩次
我至今解決方案:
如果你正在跟蹤陳爾設計這個陳ER圖,那麼你需要一個表,每個實體類型框,每一種關係(協會)型金剛石以及關係類型的每個參與/角色行的FK(外鍵)。
(這是一個壞主意,致電線/ FKS「關係」或「協會」在陳背景,因爲鑽石/表代表關係類型和線/ FKS代表參股。)
所以你Ship tourID
會贊成關係/表takes
與行/ FK到Ship
& Tour
。並且您將在has
表中有兩個FK到Location
。沒關係的是,您需要關係表中的不同列名稱與參與者表格中的列名稱不同。 FK只是說某些表&列中的值列表出現在某個其他表&列表中。該圖表示名稱是start
& target
;使用它們。
請勿使用類似has
這樣的無用信息名稱。如果您選擇了一個更好的名稱和/或解釋三聯實體滿足has
關係時,我們可以知道什麼樣的合理設計。例如,您可能沒有正確使用基數。 Chen的方式是,一個數字或範圍告訴實體類型的一些實例它可以參與多少個關係實例。另一種方法是,一個數字或範圍告訴你一些參與實體的實體實例的一些組合輸入該行的實體類型的多少個實例可以參與其中。如果後者的值爲零,則表示關係實例可以具有NULL。但這不可能出現在陳的設計中;參與實體實例組合標識關係實例並形成PK(主鍵)。
但是,陳設計不能表達所有的關係設計。我們可以通過重新排列表來表示與陳ER模式相同的數據。例如,刪除並非很多的二元關係表,並將FK(有時可以爲空)放入實體表中,就像您使用takes
,Ship
& Tour
一樣。有些方法有非陳圖直接表達這種設計。其他人則允許從陳圖走向架構。你必須問你的老師,他們是否關心陳圖式的ER圖和你允許的相應模式有什麼變化。 (這是非陳方法中明確的1:許多關係/關聯及其通過FK表示導致FK被錯誤(但通常)稱爲「關係」或「關聯」)。