• I too thought the article was wordy.  It was quite refreshing, getting a plateful of detail and depth on a subject I've burned a lot of thought on, instead of the talking head sound bytes so common in many industry magazines (but not that common on SQL Central!)  After going back and forth on the "what's best" subject several times, I too have finally settled on the one table per lookup solution, for reasons covered by both this article and a similar one I found by Joe Celko--run, don't walk, to learn from Joe Celko--at http://www.dbazine.com/celko22.shtml.

    The arguments I had for "MUCKing" lookup tables was I didn't want to have to support dozens and dozens of two-column tables with three rows each (and maybe that was just our application).  I also wanted a single, simple code-lookup table, where I--and anyone else--could quickly and easily find all the codes used by our disturbingly complex system.  But I also wanted DRI, the assurance that all the data was indeed good and valid, and you just can't get that with a MUCK, not without triggers (urg) or application-enforced data integrity (yeah, right).

    These days, if I want a one-stop source for code looukp, I'd make a view "concatenating" the various source tables, something like (warning, psuedo code follows):

    CREATE VIEW CODE_LOOKUP

      (

        Code_Type

       ,Code_Value

       ,Code_Title

       ,Code_Description

      )

     as

      select 'A', Code_Value, Code_Title, Code_Description

       from Lookup_Table_A

      union select 'B', Code_Value, Code_Title, Code_Description

       from Lookup_Table_B

      union select 'C', Code_Value, Code_Title, Code_Description

       from Lookup_Table_C

    This code is not checked, and details and mileage may vary by application and implementation, but you should get the idea.  I don't think this would be suitable for application use, but for quick reference (particularly for developers and system trouble-shooters) it can be invaluable.

    As for "zealotry", Mr. Peterson pales in zealotry when compared with anything by Fabian Pascal (http://www.dbdebunk.com), whose writings support this article strongly.  Of course, it isn't "zealotry", but rather "conviction and the will to stand up for it"; it only becomes zealotry when--rightly or wrongly--you strongly disagree with what they say.

       Philip Kelley