Заметки разработчика: post #1747 — TG.ME

Уникальный индекс при мягком удалении: решаем проблему дубликатов

При использовании мягкого удаления стандартный уникальный индекс перестаёт выполнять свою функцию: запись помечена как удалённая, но её данные по-прежнему участвуют в проверке уникальности. Результат — пользователь не может восстановить аккаунт на прежний e-mail.

В новом материале рассмотрены два способа решения этой архитектурной задачи:

✅ Частичные индексы в PostgreSQL — условие WHERE deleted_at IS NULL прямо в определении индекса.
✅ Генерируемые столбцы в MySQL — использование семантики NULL в составном уникальном ключе.

Оба метода разобраны с готовыми миграциями для Laravel и интеграционными тестами. Также затронуты вопросы производительности, восстановления записей и соответствия GDPR.

🖥 Читать статью

📱 @dev_notes_ru

#SoftDelete #Laravel #Eloquent #PostrgeSQL #MySQL
👍1
April 27, 2026 296 1