title: Best way to store look up values
body: <p>I have had this question for quiet long and thought of seeking wisdom of the crowd here.</p>
  
  <p>In my application there are 10 user roles allowed. Its an ASP.NET MVC2 application. Each controller method can be accessed by a specific user role only.</p>
  
  <p>For implementing this I created a UserRoleType Enum. </p>
  
  <pre><code> public enum UserRoleType
   {
          SystemAdministrator = 1,
          SeniorLevelExecutive = 2,
          SeniorManager = 3,
          JuniorManager = 4,
          SeniorAdmin = 5,
          JuniorAdmin1 = 6,
          JuniorAdmin2 = 7,
          SeniorAppraiser = 8,
          JuniorAppraiser = 9,
          SeniorResearch = 10   
   }
  </code></pre>
  
  <p>These values match with whats in database (UserRole table with 10 rows). </p>
  
  <p>Also the UserRoleId of a user is stored in [User] table. As soon as a user logs in we get the roleId of the user from the database and match this to the above enum. For instance if the roleId of the user was 4, it means he/she is a Junior Manager.</p>
  
  <p>This application is not in production now. The only drawback I see is when we go live if for some reason the value in User Role Type table did not match the Enum we will be in big trouble. What are the alternatives? Or should I just concentrate on making sure that we have the matching values in database. Any help will be highly appreciated.</p>
  
  <p>Thanks a lot! </p>