Ok, I am sorry - not really - but this is design madness.
Seperate tables for each lookup table. Surrogate int keys when appropriate (almost always). This keeps referential integrity possible - hello thats the point of a relational database.
ISO codes - give them a column with a unique constraint.
Never, never, never design anything that uses triggers for referential integrity unless it is as a last resort.
I want my lookup tables to be easy to use
Select F.Comments, S.StatusCode
From Form F
Join Status S
On F.StatusID = S.StatusID
Where F.FormID = 34567
There, I have comment and the text version of the status information, something the user can read.
Also, if I want to cache Status Code information somewhere the table is small and light so it is easy to cache as say XML
Michael R. Schmidt