在我的web應用程序中,我將有三種類型的帳戶。3個不同表格中的用戶,客戶,管理帳戶?
- 用戶:使用Web應用程序的免費
- 客戶:廣告和獲取公司徽標
- 管理:用於編輯和刪除的東西
如果所有這三個是獨立的或者在名爲「account_type」的列中,我可以將其標記爲User,Customer或Admin?
兩者有什麼優點和缺點?對此有最佳做法嗎?
感謝
在我的web應用程序中,我將有三種類型的帳戶。3個不同表格中的用戶,客戶,管理帳戶?
如果所有這三個是獨立的或者在名爲「account_type」的列中,我可以將其標記爲User,Customer或Admin?
兩者有什麼優點和缺點?對此有最佳做法嗎?
感謝
在一般情況下,一個person
可以是用戶,客戶和管理員 - 因此,我將與Person
表列開始,IsUser
,IsAdmin
。稍後(爲了快速搜索),您可能決定將單獨的表格Admin
,Customers
,Users
與FK添加到Person
表格中。
編輯:
一個典型的例子可以是:
通常,具有爲客戶單獨的表,並管理員應該加快任何管理員/客戶相關的查詢。
有時,用戶和客戶具有不同的屬性,因此您需要將其分成2個表格,而不是將可選列放在同一個表格中。 – brunocascio 2017-05-31 23:22:39
如果一個用戶只能是一個類型,你會用一個表和IsAdministrator位域等
更好,如果使用者可以超過一個帳戶類型,你應該再有一個不同的表的外鍵,
樣本結構(數據sypes是SQL Server和只是建議)
用戶表
角色表
User_Roles表
優缺點取決於系統的大小和複雜程度。
我將其拆分成用戶,角色,UserResources
用戶(將定義基本信息)
用戶角色
- FK->角色類型
Role_Type(用戶,管理員,客戶,可能的權限,或者你可以進一步解決這個問題)。
UserResources(媒體)
- FK->用戶
我認爲它會留在用例如何與其他的東西在你的數據模型是有用的。即用戶和管理員之間的連接是什麼? – Nix 2010-08-18 12:05:48
我會說一個表,但是如果每個角色都有很多不同的屬性,那麼應該考慮不同的表。您可以用id/enum標記用戶,我們稱之爲角色。角色= 1將是一個用戶,角色= 2將是一個客戶,角色= 3將是一個管理員。所以你可以很容易地用一個外鍵構造擴展你的角色(比如David Stratton說的)。 – hering 2010-08-18 12:10:21