Я думаю, с точки зрения кода, перечисления определенно имеют смысл.Однако, если вы используете NHibernate для генерации схемы базы данных, ищите ее, используя MySQL Enum Data Type .Это сохранит ваши перечисления в виде строк, но обеспечит ввод только допустимых значений.Это может быть дорогостоящим с точки зрения хранения, а также при попытке рефакторинга.Тип базы данных enum будет обрабатывать проверку на уровне базы данных для вас, поэтому произвольные обновления будут менее беспокоящими, я предпочитаю сохранять числовое значение и полагаться на приложение для проверки, потому что это упрощает добавление или переименование членов enum.*
Я понятия не имею, является ли это лучшим подходом или нет (если вы используете свободный nhibernate, это почти наверняка может быть достигнуто с помощью соглашений), но если вы посмотрите на это сообщение в блоге , вы можетенайдите IUserType, который обрабатывает перечисления перечисления как целые числа в MySQL и рассматривает некоторые возникающие проблемы.