title: grails when to use enum vs database lookup table
body: <p>I'm geting towards the end of my application and have 25 lookup tables.  Some of my domain classes have 15 table references as properties (one-to-one).  Now I have just remembered/learned I can use enums instead.  I'm sure I can refactor a bunch of those lookup tables to be enum classes.  However, what are the best practices for using an enum vs. a lookup table?  A few things about my application scenario that may assist in the answer:</p>
  
  <ol>
  <li>There is only one developer (me)</li>
  <li>This is a web based application</li>
  <li>It won't be a heavily used application</li>
  <li>When the view for the domain class with currently 15 lookups is rendered, all of those lookups will need to be loaded to display the data in the view. (15 joins)  </li>
  <li>The lookups will be cached in memory.</li>
  <li>The lookup relationships to the domain class are all one-to-one</li>
  <li>The data in the lookups will rarely change </li>
  <li>Some of the values in the lookup tables are wordy, example: "Taking care of animals"</li>
  <li>Some of the lookups have many records.  Example: one lookup is U.S. states.  Another is a person's occupation.</li>
  </ol>