Нет смысла делать длинную переменную длины в базе данных? - PullRequest
0 голосов
/ 19 апреля 2011

Я хотел бы сохранить статус пользователя в базе данных, поэтому я буду использовать символ для хранения статуса, например, «активный», «неактивный», «закрыть». Я буду использовать «a», «i», «c» для представления этого статуса. Но бессмысленно хранить varchar в базе данных? я должен использовать тип или набор символов?

** база данных в mysql.

Ответы [ 2 ]

3 голосов
/ 19 апреля 2011

Возможно, вы захотите использовать вместо int или enum . Если вы хотите использовать тип char, CHAR (1) NOT NULL должно подойти. С перечислением это будет:

status ENUM('active', 'inactive', 'close')

С целым числом:

status tinyint

Использование int - хороший вариант, но document значения хорошие.

1 голос
/ 19 мая 2011

Следует помнить, что добавление нового значения в перечисление требует переписывания всей таблицы.Я вообще рекомендую хранить CHAR или VARCHAR.Можно добавить ссылку FK в таблицу допустимых значений, если вы хотите другой аспект перечислений, который требует, чтобы значение было перечисленным.Затем «почти перечисление» можно расширить, добавив другое значение в таблицу FK.

...