我正在設計一個擁有多種用戶類型(即管理員,編輯,教師和學生)的數據庫。現在所有這些用戶都有一些共同的字段(CF)和一些與它們相關的唯一字段(UF)。我想知道這是不是一個好設計?數據庫設計問題:多種類型的用戶
表的用戶:[USER_ID(PK),CF1,CF2,...,CFN,USER_TYPE(枚舉)]
表管理:[ID(PK),UF_A1,UF_A2,...,U_AN ,USER_ID(FK)]
表編輯:[ID(PK),UF_E1,UF_E2,...,U_EN,USER_ID(FK)]
表教師:[ID(PK),UF_T1,UF_T2 ,...,U_TN,USER_ID(FK)]
表生:[ID(PK),UF_S1,UF_S2,...,U_SN,USER_ID(FK)]
其中UF_A,UF_E,UF_T和UF_S是每個相應表格的唯一字段。
現在我的問題是:
- 這是一個好的設計?如果不是,你將如何設計它?
- 如何確保user_type教師的用戶不在學生表中存儲例如?
PS:一些更多的積分,如果他們可能會在得到一個更好的瞭解有所幫助:
- 該數據庫將與笨使用。 CF的
- 的例子是:用戶名,密碼,電子郵件,個人資料圖片 獨特領域的
- 例子是:學生(年齡,報名號),教師(大學名,大學的標誌,學位。)
10你會如何評價「好」? – 2013-05-08 09:40:27
對不起,'好'不明確。我的意思是一個強大的,可擴展的設計,並遵循關係數據庫設計的最佳實踐。我之前沒有任何數據庫設計經驗,所以我很害怕做出一個可能在以後很昂貴的新手錯誤。 – joshi 2013-05-08 09:44:23
我會選擇一個更「角色」的架構,所以SELECTS和JOINS不會變成噩夢。用戶表,角色表,user_role_vars表。 – jtavares 2013-05-08 15:05:45