• CREATE TABLE Code (

      CodeID int IDENTITY(1,1)

      , CodeType int

      , Description varchar(255))

    ALTER TABLE Code ADD CONSTRAINT PK_Code PRIMARY KEY (CodeID, CodeType)

    I would put CodeID as the PRIMARY KEY and separate index on the CodeType field.

    The reasons being that I may want a drop down box of all entries for a particular code type.

    As CodeId is unique I don't have to worry about what type I am referencing in a PK->FK relationship.

    If I have a database with  a large number of "Lookup" tables but these table only hold a handful of records each then I will consider the "MUCK" approach.

    If those lookup table contain a vast number of records then I keep them as individual tables because a MUCK table will slow the system down.

    It really depends on who is going to be using the database and for what.