2009-04-09 55 views
0

什麼是最好的數據庫模型,利用該deppending選擇的用戶類型的用戶註冊過程中的不同數據,某些領域將需要與否。數據庫建模的問題 - 需要deppending用戶類型

例: 用戶A類要求:名稱,電子郵件,出生日期和性別 用戶B類要求:公司名稱,聯繫人,電子郵件,N.員工

我覺得最黎民是創建一個包含所有這些字段的表,並使它們允許NULL。

你們會提出什麼建議?

回答

0

我以前做過同樣的事情。只要您存儲客戶類型,就不難獲得正確的細節。

您可以考慮2個表,如果有將是一個表,它是比其他的大得多使用視圖來聯合他們,雖然對客戶類型的指數會做同樣的事情。 「非常相似」我的意思是快速訪問一種類型的數據。

關於把所有的數據在一個表中,你不必做任何連接來獲取數據,這與書寫的查詢和易用性的速度幫助的好處。

1

您可以創建一個基地「用戶」表中持有任何公共字段,以及其他表是掛關閉用戶與FK到基礎User.ID.如果沒有公共字段,那麼只需要有不同的表格,而不是一個帶有大量空字段的表格。

1

爲了保持一致性,最好爲用戶提供一個「主表」,其中唯一的字段將是一些用於這兩種類型(例如,ID,​​SSN或其他)的用戶共同的唯一用戶標識符。

然後由你如何表示的專業化。

一種選擇是具有在該表中表示的類型的第二字段,然後兩個表與細節,每一個類型。在查詢時,如果用戶的類型爲A,則只能確保在TYPE_A表中查找用戶的詳細信息。

第二種選擇是不具有該字段,並依據事實在特定的表格中有記錄來表示類型,但這是相當危險的。