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

