Мы используем NHibernate, и один из общих шаблонов, который мы имеем для хранения информации, подобной перечислению, состоит в том, чтобы определить отдельные таблицы для перечисления и просто сделать ссылку на ID в основном объекте/таблицу, которая использует перечисление. Простой пример:Таблицы enum в Hibernate/NHibernate
Message
-------
ID (bigint PK)
MessageTypeID (bigint FK)
Body (varchar)
MessageType
-----------
ID (bigint PK)
Value (varchar)
MessageType таблица содержит небольшое количество значений перечислений, как: SMS, MMS, PSMS и т.д.
Стоит ли положить значение перечислений в отдельных таблицах, как это? Я предполагаю, что про перечисления состоит в том, что вы можете более легко продлить его в будущем, и это более нормализовано, но con заключается в том, что вам нужно делать соединение каждый раз, когда вы получаете сообщение. Есть ли переломный момент, когда вы выбираете один над другим?