We use NHibernate, and one of the common templates that we have for storing information like an enumeration is to define individual tables for the enumeration, and just reference the ID in the main entity / table that uses the enumeration. A simple example:
Message
-------
ID (bigint PK)
MessageTypeID (bigint FK)
Body (varchar)
MessageType
-----------
ID (bigint PK)
Value (varchar)
The MessageType table contains a small number of enumeration values, such as: SMS, MMS, PSMS, etc.
Is it worth inserting enum values ββinto separate tables? I assume that about enumerations is that you can more easily expand it in the future and normalize more, but con is that you need to make a connection every time you receive a message. Is there a breakpoint when you pick one over the other?