Одним из преимуществ использования таблицы базы данных является то, что вы можете установить ограничения внешний ключ . Таким образом, ваша ссылочная целостность всегда будет неизменной. Не нужно запускать интеграционные тесты, поскольку DanVinton предложил для перечислений, он никогда не выйдет из синхронизации.
Я также не стал бы пытаться создать общую таблицу enum, поскольку saw-lau предложил , главным образом потому, что вы теряете чистые ограничения внешнего ключа, что является главным преимуществом их наличия в БД в первую очередь. (мог бы хорошо воткнуть их в текстовый файл). Базы данных хороши в обработке множества таблиц. Присвойте имена таблиц "ENUM_", если вы хотите их различать.
Приложение всегда может загрузить их на карту как время запуска или при запуске события перезагрузки.
РЕДАКТИРОВАТЬ: Из комментариев " Конечно, я буду использовать ограничения внешнего ключа в моей БД. Но это может быть сделано с использованием или без использования перечислений на стороне приложения "
Ах, я пропустил этот момент, читая вторую строчку вашего вопроса. Однако я все еще говорю, что лучше загружать их в карту, в основном на основе DRY . В противном случае, когда кто-то должен поддержать, он прибывает, чтобы добавить новую страну, он, безусловно, будет обновлять в одном месте, но не в другом, и ломать голову, пока не поймет, что ему нужно обновить его в двух разных местах. Случай преждевременной оптимизации . ИМХО, выигрыш в производительности будет минимальным, за счет менее обслуживаемого кода.