• You got any space saving or performance improvement with this scheme?  Do you have less code to maintain?

    Any chance you'll be locking everyone out of all lookup values while you're maintaining it? 

    Is your maintenance code better?  You definitely waste space, you mishandle numeric lookup values, and you can't handle referential integrity well. 

    You may also create security issues, maintenance issues and disregard normalization. 

    Suppose certain users can have access to a set set of lookup values - you need views.  Suppose some users need access to a subset of lookup values, now you have to carry an unused subtype around for all the other lookup values. 

    How are you filtering lookup values for retrieval?  You are using complicated views or stored procs instead of a number of simple ones. 

    So you have a possibly handy, but definitely poor design.  You're also putting all your  eggs in one basket - what happens when some accidently clobbers the combined lookup table?  Everything is down.

    see http://www.tdan.com/i016ht03.htm  and http://www.dbmsmag.com/9802d06.html