2009-05-31 250 views
0

對於被認爲是最佳實踐的ER模型中的每個屬性,是否使用一個數據庫列?數據庫設計,單個字段中的多個屬性

我在遺留代碼上進行維護,並且看到很多多屬性,以及業務邏輯擠入單個數據庫列,我不知道是否有任何充足的理由這樣做。

示例使用整數值的前綴(例如,前兩位數字表示客戶狀態的客戶ID)和以下數字(客戶的實際ID)。因此將兩個屬性存儲在一個字段中。另一個例子是,對於已經結束業務的客戶使用否定客戶ID:因此還存儲關於客戶是否活躍的信息。等等

回答

3

在一列中存儲多條信息違反了第一範式,因此在關係數據庫中被認爲是非常糟糕的。

+0

我向上投票,但在客戶Id的情況下,也許這就是業務如何識別他們的客戶,而TX123與CA123不同。在那種情況下,我可以把它放在一列中。當客戶移動狀態時將取決於更新的語義等。 – 2009-07-15 06:03:47

1

你在那裏聽起來像是每日WTF中的新條目的應用程序,而不是一個明智的數據庫設計。在考慮這樣的事情之前,請閱讀數據庫規範化,並保存自己的頭痛。

1

在列中存儲多個字段時會發生許多問題。例如,假設您需要更新此列,首先您將'ab'用作客戶狀態,但決定將其更新爲'cd'。當多個字段存儲在一列中時,這會變得非常混亂。

您應該結帳數據庫標準化以更好地理解這一點。 http://en.wikipedia.org/wiki/1NF

相關問題