При использовании мягкого удаления стандартный уникальный индекс перестаёт выполнять свою функцию: запись помечена как удалённая, но её данные по-прежнему участвуют в проверке уникальности. Результат — пользователь не может восстановить аккаунт на прежний e-mail.
В новом материале рассмотрены два способа решения этой архитектурной задачи:
✅ Частичные индексы в PostgreSQL — условие
WHERE deleted_at IS NULL прямо в определении индекса.✅ Генерируемые столбцы в MySQL — использование семантики
NULL в составном уникальном ключе.Оба метода разобраны с готовыми миграциями для Laravel и интеграционными тестами. Также затронуты вопросы производительности, восстановления записей и соответствия GDPR.
🖥 Читать статью
📱 @dev_notes_ru
#SoftDelete #Laravel #Eloquent #PostrgeSQL #MySQL
