Глоссарий

Soft Delete

Soft Delete — паттерн «мягкого» удаления: запись не удаляется из БД физически, а помечается как удалённая через поле deleted_at (timestamp). Все запросы автоматически фильтруют «удалённые» записи.

Зачем

Реализация

-- Миграция: добавить поле
ALTER TABLE users ADD COLUMN deleted_at TIMESTAMP NULL DEFAULT NULL;

-- "Удаление"
UPDATE users SET deleted_at = NOW() WHERE id = 42;

-- Запросы игнорируют "удалённых"
SELECT * FROM users WHERE deleted_at IS NULL;

Недостатки