Estamos usando NHibernate, y uno de los patrones comunes que tenemos para almacenar información enum es definir tablas separadas para la enumeración, y simplemente hacer una referencia a la ID en la entidad principal/tabla que usa la enumeración. Un ejemplo sencillo:Tablas de Enum en Hibernate/NHibernate
Message
-------
ID (bigint PK)
MessageTypeID (bigint FK)
Body (varchar)
MessageType
-----------
ID (bigint PK)
Value (varchar)
La tabla MessageType contiene un pequeño número de valores de enumeración como: SMS, MMS, PSMS, etc.
¿Vale la pena poner los valores de enumeración en tablas separadas de este tipo? Creo que el profesional de la enumeración es que puedes extenderla más fácilmente en el futuro y está más normalizada, pero la desventaja es que tienes que unirte cada vez que traes un Mensaje. ¿Hay un punto de quiebre donde elegirías uno sobre el otro?