проблема.

я есть (фиктивная) структура таблицы следующим образом:

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 в этом случае - небольшая производительность.

Ответы на вопрос(7)

Ваш ответ на вопрос