2017-08-02 122 views
0

我必須再次參加DB設計的在線課程,因爲我得到了一個非常懶惰的老師,我認爲他教會了我們所有的東西,並且我繼續發現他沒有。設計兩個具有相同ID的數據庫表?好的做法?

我正在設計一個小型數據庫,其中兩個特定的表提出了這個問題。

我有一個名爲「運動員」的表,其中存儲運動員信息,另一個名爲「EntryInfo」的表格存儲一個人的目標,如果他是另一名運動員的轉診。

運動員沒有辦法可以有一個以上的進入信息,所以我認爲idAthlete既適用於「運動員」也適用於「EntryInfo」,但我不知道這是否正確。現在我有以下問題:

1)在試圖保持「運動員」表儘可能乾淨我沒有在「運動員」表從一開始就包括這個「EntryInfo」,但它可以在同一張桌子上。這是處理它的最好方法嗎?關於DB設計中的良好實踐,他們應該在1或2個表格中?

2)如果it's更好地保持它在兩個單獨的表,我能得到idAthlete的PK中運動員表(身份證,增量),並把它還可作爲進入信息只作爲一個PK FK?或者是否有更好的做法來增加PK身份idEntryInfo on EntryInfo表中帶有FK idAthlete?

我知道這是一個基本的問題,我知道我應該學習DB設計和規範化(我會這麼做)。

+0

我會建議保留這些信息在第二個表之間的同步鍵。但在那裏你的第二個想法。意思是你希望idAthlete成爲Athlete表的外鍵。這樣當項目擴展並且您需要爲每個運動員容納多個EntryInfo行時,您的設計無需修改即可支持此行。 –

+0

你說他們就像他們是不同的實體,這可能是保持他們分開的好論據。然而,在另一方面,如果像你所說的那樣,你知道兩者之間存在1:1的映射關係,保留兩個具有相同主鍵的表就像是你爲自己增加了更多的工作。 – Xedni

+0

感謝你們倆。 Xedni這是我主要的疑問。此條目信息來自培訓師處理其客戶的表單,表單上的信息對於開始時的人員非常有用,並且一旦添加記錄就不會改變。 我想我可以去任何一種方式,但不知道什麼是最好的標準做法。 – TikalDog

回答

0

當你有兩個表具有相同的鍵時,它被稱爲垂直分區,這是一個有效的設計,由於各種原因。

但是我在你的解釋中沒有看到任何理由。我只看到你的陳述保持「運動員」表儘可能乾淨,這有一個非常普遍的含義。如果您打算將不同的字段組放入不同的表格,您可以按任意多種方式對其進行分類

如果您擁有zillion記錄並且出現性能問題,那麼可能值得考慮。

,如果你把它放在一個表它會爲你簡單,那麼你不必去撥弄有關表的

相關問題