0
假設微軟有許多CD,它需要跟蹤(包括歷史)每張CD的位置。sql server中的冗餘數據?
因此,有可能會是一個CDs
表所示:
CD_ID | title | ...
_________________________
... | ... | ...
並表示其他表中的 「moves
」:
CD_ID | dateMoved | DestinationCountryID |
___________________________________________
... | ... | ...
這裏是我的問題:
如果微軟想知道cd Y
目前位於:
它可以掃描moves
表並獲得其最後的county
。
但是(在這裏是我的問題):
東西我的頭告訴我,我應該一列添加到CDs
表是這樣的:
CD_ID | title | CurrentCountryID | ...
________________________________________
... | ... | ... | ...
因此,這將對每個Cd項目更具描述性。 (並且很容易找到)。
CurrentCountryID
將在每次移動後更新。
但
這將導致redaundant數據!
因爲我們有2個地方代表它的當前位置。
我對不對?我應該添加這個列嗎?
(NB如果你要問數量:可以說,我們擁有數以百萬計的CD中)
@MitchWheat是的。我已經添加了標籤。我想它是關於正常化。 (加上最佳實踐解決方案) –
如果問題是「我應該正常化嗎?」答案是「是」! –
@MitchWheat我的分貝確實是正常化的。我只是要求那個特定的場景!我應該添加列還是不。 (並且每次掃描 - 移動表) –