我有幾個實體,它們表示需要能夠登錄到特定系統的不同類型的用戶。此外,他們有不同類型的信息與他們相關聯。如何模擬這種一對一的關係?
例如:一個「普通用戶」,它有一個電子郵件地址和「管理員用戶」,它有一個工作站號碼(注意這是一個假設的情況)。兩個實體還共享公用屬性,如名字,姓氏,地址和電話號碼。最後,他們自然需要有一個(唯一的)用戶名和密碼才能登錄。
在應用程序中,用戶只需填寫他的用戶名和密碼,並且應用程序的功能會稍微改變到用戶的類型。你可以想象這個工作的用戶名必須是唯一的。
我應該如何有效地建模?
我不能只是創建兩個表,因爲那樣我就不能強制用戶名上的唯一常量。
我也不能把它們放在一張表中,因爲它們有不同類型的特定信息。
我想我可能需要3個獨立的表,一個用於用戶名(用戶名和密碼),一個用於「普通用戶」,另一個用於「管理用戶」,但這些關係如何工作?還是有另一種解決方案? (順便說一下,目標數據庫管理系統是MySQL,所以我不認爲數據庫系統本身支持泛化)。
這聽起來像是要走的路。有沒有辦法從一個查詢中的2個相關表中獲取信息,或者我只限於查詢,然後是if和then另一個查詢(這沒有問題,但我只是好奇)。 – pbean 2010-04-14 13:23:30
你說你在不同的表中有不同的字段 - 這使得很難將其放入單個查詢中。我不認爲你會在一個視圖中顯示兩個usertype的信息 - 所以不需要將它們組合起來 – Riho 2010-04-15 06:26:44