@suhuxa1

Почему не используют enum при проектировании БД проекта?

Добрый день!
Я всегда проектировал БД с использованием enum. Весьма полезная вещь в полях, где несколько вариантов. Например: забанен ли? 1 или 0. Админ ли? 1 или 0. И так далее. Но который урок для развития смотрю, везде для таких вещей задают integer. Правильно ли это? Зачем выделять столько памяти, если будет 2 значения? До меня это никак не доходит.
  • Вопрос задан
  • 163 просмотра
Решения вопроса 2
  • BojackHorseman
    @BojackHorseman
    ...в творческом отпуске...
    потому что если классификатор нужно будет расширить вы будете делать alter на продакшене под нагрузкой, а это очень сомнительное удовольствие даже с плагинами
    Ответ написан
  • @d-stream
    Готовые решения - не подаю, но...
    Моя практика показала, что большинство enum в конце концов становятся референсной таблицей )

    Ну разве что исключая совсем уж "внутренние" сущности.

    Ну и во многих ЯП enum маппится на int
    Ответ написан
Пригласить эксперта
Ответы на вопрос 1
  • @RidgeA
    Говорю за MySQL - enum все-равно использует 1 или 2 байта, в зависимости от количества вариантов. Так что ничего не мешает завести поле tinyint и хранить значение там - объем занимаемых данных будет такой же.

    UPD:
    enum под капотом - числа c соответствием набору строк.
    Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы