一千萬個為什麽

搜索

存儲查找值的最佳方法

我長期以來一直有這個問題,想到在這裏尋求人群的智慧。

在我的應用程序中,允許10個用戶角色。它是一個ASP.NET MVC2應用程序。每個控制器方法只能由特定用戶角色訪問。

為了實現這一點,我創建了一個UserRoleType枚舉。

 public enum UserRoleType
 {
        SystemAdministrator = 1,
        SeniorLevelExecutive = 2,
        SeniorManager = 3,
        JuniorManager = 4,
        SeniorAdmin = 5,
        JuniorAdmin1 = 6,
        JuniorAdmin2 = 7,
        SeniorAppraiser = 8,
        JuniorAppraiser = 9,
        SeniorResearch = 10   
 }

這些值與數據庫中的whats匹配(UserRole表有10行)。

用戶的UserRoleId也存儲在[User]表中。一旦用戶登錄,我們從數據庫中獲取用戶的roleId,並將其與上述枚舉相匹配。例如,如果用戶的roleId為4,則表示他/她是初級經理。

此應用程序現在尚未投入生產。我看到的唯一缺點就是當我們上線時,如果由於某種原因,用戶角色類型表中的值與Enum不匹配,我們將遇到大麻煩。有哪些替代方案?或者我應該專註於確保我們在數據庫中具有匹配的值。任何幫助將受到高度贊賞。

非常感謝!

最佳答案

我的意見是,如果您不能相信自己在DB和Config文件中的配置,那麽無論如何你都是小溪。只需確保您的數據庫記錄將該值作為特定列值,而不是自動生成的行ID。

轉載註明原文: 存儲查找值的最佳方法