• amachanic,

    Yes, I realize that it's not 1NF. In fact, I mention that in the article.

    Now, I know that there are probably a number of you who immediately see that this design breaks the 1st form of normalization. I contend that there are always exceptions to the rule based upon applicability of the situation.

    I may be storing multiple types of entities (e.g. CustomerType, OrderStatus, etc) in the same table, but I'm logically separating them via the LookTypeID column. Therefore I CAN determine the domains of each value. And I'm not taking a single value and allowing it to have multiple domains such as nraghavendra suggests doing. (e.g. I can have Distributor in my Look table multiple times, but it'll be identified by a different LookGID, LookTypeFID, and LookConst value for each domain it may be in)

    As far as complicated down the road, I have used this techniqe in literally dozens of applications ranging from e-commerce shopping carts, financial data warehouses, and everything in between. This technique has saved me so much time & effort I can't even imagine building databases without it anymore. I'm not saying there's not some limitations & caveats to it, but in my development experience, they pale next to the time I've saved.

    David