Задать вопрос
sorry_i_noob
@sorry_i_noob

БД SQL — нормальны ли magic numbers в БД, которые имеют константы в back end коде? Или лучше сделать таблицу и отношение?

Здравствуйте. Я пишу интернет магазин. И вот у товара есть статусы - скрыт, показан. Или у тега - скрыт, показан, запрещен к созданию (какое-нибудь матерное слово, например).
В БД в поле это 0 - скрыт, 1 - показан, 2 - запрещен.
У меня в php есть класс Status и у него константы, которые раскрывают эти значения:
const STATUS_HIDDEN = 0;
const STATUS_VISIBLE = 1;
const STATUS_BANNED = 2;

Вопрос - нормально ли то, что константы есть в php, но в БД это просто цифры (magic numbers) - 0, 1, 2? Нужно ли создавать таблицу в БД - statuses, где будут статусы?
  • Вопрос задан
  • 170 просмотров
Подписаться 3 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 3
@d-stream
Готовые решения - не подаю, но...
Как показала практика в живущих проектах "1,2,3 и никогда не будет расширятся" - достаточно быстро расширяется)

Как примеры: еще недавно пол был М или Ж и можно было хардкорить… уже типа нет...

Ну и референсная таблица - хорошее место для хранения вариантов описаний ("запр.", "запрещен к продаже") для разных случаев отображения.

p.s. Кстати почему бы не быть товару показываемым только неким группам? (вот и 4 вариант для того что не может меняться)
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если дальнейшего расширения не предполагается, сделайте поле с типом ENUM.
Ответ написан
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Я считаю что нормально иметь такие вещи целиком в php, а в базе держать просто tinyint
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы