Каков наилучший способ хранения перечислений в базе данных в Delphi? - PullRequest
3 голосов
/ 04 февраля 2012

Следуя духу этого вопроса , каким должен быть идеальный способ хранения перечислений в базе данных в Delphi? У меня есть несколько справочных таблиц, которые управляют некоторой бизнес-логикой, поэтому а) они тесно связаны с моим кодом, и б) они могут быть изменены в новых версиях.

Сейчас я делаю это, сохраняя числовые значения и устанавливая значение перечисления явно.

type TSuit = (Unknown = 4, Heart = 1, Club = 3, Diamond = 2, Spade = 0);

Ты знаешь лучший способ?

1 Ответ

3 голосов
/ 06 февраля 2012

Учитывая реляционную модель, вы, вероятно, должны сохранить значение перечисления в таблице и создать другую таблицу, в которой будут храниться значение перечисления + имя. Последний может быть создан исключительно из RTTI.

Итак, учитывая ваш пример: у вас есть что-то вроде таблицы карт, где Suit - это байтовое поле со значениями 0..4. И у вас есть таблица Suits с 5 записями, по одной на каждое значение перечисления.

Теперь ваши данные правильно нормализованы, и есть метаданные, вы знаете, что означает Suit = 2 (например, объединитесь с таблицей Suits).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...