我正在討論一個論壇,我想保存數據庫中的用戶權限。 我的想法是這樣的:作爲單個整數在數據庫中的多個權限
USER TABLE HAS: (besides name, login etc)
fk_role_id
ROLE TABLE HAS:
role_id
role_name
role_rights
然後,我有一個Enum
與用戶權限和用戶等級:
[Flags] public enum PermissionTypes : int {
None = 0,
Register = 1,
ThreadCreate = 2,
ThreadEdit = 4,
ThreadDelete = 8,
ReplyCreate = 16,
ReplyEdit = 32,
ReplyDelete = 64,
CatCreate = 128,
CatEdit = 256,
CatDelete = 512,
UserCreate = 1024,
UserEdit = 2048,
UserDelete = 4096,
All = Register | ThreadCreate | ThreadEdit | ThreadDelete | ReplyCreate | ReplyEdit | ReplyDelete | CatCreate | CatEdit | CatDelete | UserCreate | UserEdit | UserDelete
}
public class User {
public PermissionTypes Permissions = PermissionTypes.None;
}
現在是有可能的用戶權限保存爲role_rights
一個詮釋?並再次離開他們的場外?
UPDATE:
只是爲了clearify我的問題是什麼... Fx的。如果我有一個用戶的權限:CatCreate & UserCreate,這將給我總共:1152 ... 現在我將如何使用該數字來測試用戶擁有什麼權限?現在它是一個小數點
你認爲你是做這種方式節省? http://www.sqlperformance.com/2012/08/t-sql-queries/dry-principle – 2013-03-04 13:07:11
但問題是什麼?當然你知道如何存儲一個整數並查詢它? – usr 2013-03-04 13:09:42
剛剛更新了我的問題...而我猜即時嘗試不,必須使功能用戶可以訪問,另一個綁定功能的角色... 因此,我只需要一個角色表,與小數,並從那我可以看到用戶可以訪問... – 2013-03-04 13:51:56