2011-02-03 59 views
0

我有一個龐大的數據庫。 在這個數據庫中我有一個用戶表。數據庫設計:由於邏輯差異還是不符合標準規範?

在本用戶表我有所有的信息,我可以獲取有關用戶 - ADRESS,用戶名,重量,染髮和這麼多(50-80 coloums我猜)。

現在我將擁有用戶設置。

當然,1個用戶只能有1個設置,所以它是1:1連接,並且在我多年前學過的規範化規則中,設置應該作爲用戶表中的一個顏色。

但logicaly它像一個ADRESS我將顯示的網站behauvior爲用戶用戶/管理員和用戶設置信息之間有很大的區別。

我該怎麼辦? 爲UserSettings自己的表,並打破normalitation的大邏輯差異OR的投放設置,在用戶表coloums的規則和不破normalitation的大邏輯規則???

回答

1

對於大型複雜數據庫,完全標準化很少是正確的方法。

總是考慮你的模型的利弊。考慮以下內容:複雜性,性能,維護,演變。

如果你的數據庫是一個不斷髮展的系統的一部分,那麼你幾乎肯定會在未來的某個時刻改變你的模型(表)和關係。

作爲一個經驗法則,讓你的模型貼近現實生活將在長期內帶來效益。特別是當您的客戶/用戶返回新功能請求時。

嘗試考慮如何以不同方式爲數據建模。例如:您當前的「用戶」記錄聽起來更像是「聯繫人」記錄。聯繫人記錄可能比存儲系統設置有其他用途 - 因此,將兩個模型保存爲單獨的表格將是正確的解決方案 - 即使關係的開始時間爲1:1。

0

爲用戶設置創建單獨的表格不會破壞規範化規則。如果其他原因有意義,那麼我建議你這樣做。

0

它的確定打破錶apart-例如,RDBMS很好可以讀取行的時候能夠避免大量的磁盤尋道(或讀了很多不必要的數據)。這取決於您的應用程序以及它如何查詢數據。