Что такое Soft Delete (мягкое удаление) на уровне БД? Какие архитектурные проблемы с индексами, уникальностью полей и производительностью ORM возникают при использовании флага is_deleted = True в больших таблицах?

Soft Delete сохраняет строку, помечая её удалённой. Это облегчает восстановление, но требует единообразной фильтрации, продуманной уникальности и отдельной политики физической очистки.

Короткий ответ

Что ответить на собеседовании

Soft Delete сохраняет строку, помечая её удалённой. Это облегчает восстановление, но требует единообразной фильтрации, продуманной уникальности и отдельной политики физической очистки.

Подробный разбор

Ответ с пояснениями

Soft Delete сохраняет строку, помечая её удалённой. Это облегчает восстановление, но требует единообразной фильтрации, продуманной уникальности и отдельной политики физической очистки.

Обычный unique-индекс продолжает учитывать удалённые строки. В PostgreSQL частичный unique-индекс по активным строкам может разрешить повторное использование значения, но восстановление старой записи тогда способно конфликтовать.

ORM-фильтр по умолчанию не защищает raw SQL, JOIN и административные обходы. Большой объём удалённых данных увеличивает индексы и стоимость обслуживания; частичные индексы полезны только при подходящих запросах. Продумайте каскады, аудит, retention и гонки восстановления. Soft Delete не равен полноценной истории версий и не заменяет обязательное удаление данных.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее