Oh, and I remembered another argument for the existence of simple code tables - consistency. Okay, so your Gender column contains M/F. What if another table makes it m/f? Or even assuming that you rule your database with an iron fist and even without a code table, everyone puts in exactly the right codes all the time - what about the display of non-code values. Your application's on-screen reports may all say the same thing, like 'Male' or Female', but what about reports? 'Boy' 'Girl', 'Man' 'Woman'. The problem gets worse over time. In 2 years, people may still be adding reports to your application long after you're gone. What is to keep them consistently translating your codes to descriptive words or phrases? While this may sound silly for Male/Female, it becomes less silly for race, or other less universally-accepted domains. If you want to enfocrce consistency in both your data and in your presentation, the code table is the best vehicle, hands-down.
- Chris
