我正在設計一個Web應用程序,作爲創建數據庫的第一步。現在非常基本的表叫Role
需要通過數據庫來管理。該表將舉行:什麼是在數據庫中創建主表並在應用程序中使用它們的理想設計
RoleID (Identity and Primary Key)
RoleName (Varchar)
現在,在應用程序,如果我需要檢查是否爲「管理員」的角色,使其他按鈕禁用它的一個。那麼我應該如何編寫一個沒有硬編碼「Admin」作爲角色的代碼呢?
在這種情況下,如何在數據庫中存儲Master之類的數據並在應用程序中引用該數據可能是一個好設計?
我用enum
做早期的,但因爲如果我加入數據庫中的新角色,然後我還需要改變enum
的代碼,例如,它似乎它沒有太多的維護
public enum Role
{
Admin=1,
Normal=2
}
看到這個線程:http://stackoverflow.com/questions/229856/ways-to-save-enums-in-database它似乎是一個好主意,使代碼主要枚舉,然後只是推動在某個時候向DB提供信息。 (並且讀回特定的值)注意:你的「角色」可能僅僅是在它被分配給某個東西之後意味着什麼,你描述的表只會包含所有可能值的列表,但不會將角色映射到用戶或頁面。 – 2014-03-06 13:24:03
如果這是一個asp.net Web應用程序,爲什麼不使用標準表單身份驗證? –
@AaronPalmer我不記得ASP.NET窗體身份驗證爲一件事提供了一個強大的組(或角色)的概念。此外,它往往會促使您將授權存儲到XML文件中,這通常會更好地保存在程序的數據庫中,讓程序更輕鬆地管理它。它也可能促使你爲每個網頁用戶提供「windows用戶」,這很容易讓人發瘋。 – 2014-03-06 13:33:08