проблема.
я есть (фиктивная) структура таблицы следующим образом:
ticket id: int(11) PK name: varchar(255) status: ?????????
Вопрос в том, какой тип данных я должен использовать для статуса? Вот мои варианты, как я их вижу:
varchar, представляющий статус - ПЛОХО, потому что нет целостностиenum, представляющий статус - ПЛОХО, потому что для изменения значения мне придется изменить таблицу, а затем любой код с выпадающими списками для значений и т. д. и т. д.int FK для таблицы состояния - ХОРОШО, потому что оно динамично, ПЛОХО, потому что его труднее осмотреть (это может быть полезно)varchar FK для таблицы состояния - ХОРОШО, потому что она динамична и видна при осмотре. ПЛОХО, потому что ключи значимы, что обычно осуждается. Интересно, что в этом случае таблица состояния может иметь всего 1 столбец, что делает ее прославленным перечислениемЯ получил точное прочтение ситуации? Неужели наличие значимого ключа действительно так плохо? Потому что, хотя это дает мне мурашки по коже, у меня нет никаких причин для этого ...
Обновить: Для варианта 4 предложенная структура будетстатус: char (4) FK, к таблице состояния. Так,
OPEN => «Открыть»
CLOS => "Закрыто"
"PEND" => "Ожидание авторизации"
"PROG" => "В процессе
Какой недостаток в этом случае? Единственное преимущество использования int над char в этом случае - небольшая производительность.