Mar 01, 2010 9:07 PM
People have used the “Lu” prefix on database tables since time eternal, but it means very different things to different people. I’m reading a specification right now that has 24 tables; 18 of them are “lookup” tables. Several of these can be configured from within the application. I find that weird.
Here’s my view:
A table is always considered “lookup” if adding or removing rows, or changing their meaning, would break the application, or result in unexpected behavior. For instance, a table that corresponds to a status enumeration in the code. You might change the friendly name of one of these statuses, but you wouldn’t change the ID, or the general meaning of it. And you wouldn’t have a “status description maintenance” screen in your application.
A table is probably “lookup” if it is sufficiently static that there is no provision for editing it in the user interface. For instance, a list of US states, counties within a state, genders, or the like. Sure, Puerto Rico might become a state, but we’re going to call it a static list.
What do you think? Does “lookup” mean:
- static (changes break the app)
- not editable through the UI (but changes don’t break the app)
- not changed very often
- all ancillary data (everything but a few primary tables)