2012-01-06 129 views
4

我正在'員工'數據庫上工作,並且這些字段已經開始合計(20位)。該數據庫將來自不同的UI來填充說:何時拆分大型數據庫表?

個人信息的用戶界面:填充「僱員」表中的字段,如生日,姓氏,性別等

就業詳細UI:填充領域'僱員'表,如員工編號,僱傭日期,年級等

從單個用戶界面填充所有字段(如你所想象的)是凌亂的,並導致一個非常長的形式,你需要滾動。

我正在考慮將此表拆分成幾個較小的表,這樣每個較小的表都可以捕獲員工的相關信息(即根據UI邏輯分割表)。

表格將被員工ID加入。我明白,與一對一關係拆分表通常不是一個好主意(multiple-database-tables),但可以拆分表邏輯上的幫助,以便僱員信息被捕獲在幾個INSERT語句中?

謝謝。

+2

嘗試使用視圖。 – Maheep 2012-01-06 12:53:23

回答

6

您的數據模型不應遵守UI強加的任何規則,只是爲了方便。減少給定UI組件的列集的一種方法是使用視圖(在大多數數據庫中,也可以使用簡單視圖INSERT/UPDATE/DELETE)。另一種是避免SELECT *。您可以隨時選擇表格列的子集

2

「可以將表格的邏輯幫助分開,這樣員工信息就會在多個INSERT語句中被捕獲?」

編號

它有什麼用?

20個字段相當關係數據庫的字段數。前段時間有一個關於SO的問題,開發人員預計在單個表中有大約3,000個字段(實際上超出了所討論的RDBMS的能力) - 在這種情況下,分割表。

如果只有一小部分列將只填充一小部分行(例如,如果存在特定於公司董事的屬性),那麼也可以拆分表。

但是,從目前提供的信息來看,沒有明顯的理由來拆分表格。

0

簡而言之,你想規範你的數據模型。規範化是將數據系統地重組爲表格,形成了EF Codd四十年前開發的關係數據模型的理論基礎。有標準化的水平 - 非標準化,然後是第一,第二,第三等標準形式。

在很多數據庫商店中,標準化現在幾乎不成爲事後考慮,表面上是因爲它被錯誤地認爲會降低數據庫性能。

我在IBM網站上發現了一個很棒的總結,說明可能有所幫助的規範化。 http://publib.boulder.ibm.com/infocenter/idshelp/v10/topic/com.ibm.ddi.doc/ddi56.htm

由CJ日後修訂的原始Codd書不幸很不方便。我可以推薦「數據庫系統:設計,實施&管理;作者:Rob,P. & Coronel,C.M」。我爲使用這本教科書的數據庫設計開了一堂課,我一直在使用它作爲參考。