В таблице
users встречал такое:
is_active VARCHAR(5) -- значения 'true' или 'false'
На первый взгляд — ерунда. На практике:
– нет валидации: можно вставить
'tru', 'yes', '0',– медленнее сравнение, чем у
BOOLEAN,– больше места в хранилище,
– сложно агрегировать и строить аналитику.
🔧 Как надо:
is_active BOOLEAN DEFAULT true
– Экономия места (1 байт против 5 и больше)
– Проверка через
WHERE is_active– Простой
COUNT(*) FILTER (WHERE is_active) для отчётов– Автоматическая поддержка в ORM и UI-форматах
📌 Даже если тебе нужно больше состояний - используй
ENUM, а не строку.💡Чем проще тип, тем меньше шансов на баг.
Сохрани, если в коде встречал такое - и переделай с чистой совестью.
📲 Мы в MAX
#db
👉 @database_info
