ℹ️ Когда пользователи регистрируются с опечатками, база данных постепенно превращается в свалку.
ℹ️ Если к профилям привязаны истории бронирований и заказов, то просто удалить «лишнее» не получится - можно случайно стереть важные данные.
Короче говоря:
В новой статье CTO компании «Исходный код» делится кейсом дедупликации базы данных с артистами.
ℹ️ Главная сложность была в том, что дубли образуют цепочки. Например, у Артиста 1 и 2 совпадает телефон, а у Артиста 2 и 3 - email. Напрямую 1 и 3 не связаны, но это один и тот же человек, и все их связи нужно объединить вокруг одного «мастер-профиля».
⚠️ Спойлер:
Команда разработала и протестировала на реальных данных два разных алгоритма на SQL.
🔼 Алгоритм 1
Рекурсивный обход неориентированного графа.
🔽 Алгоритм 2
Итеративное сжатие временных таблиц (без рекурсии и блокировок производственной БД).
Какой вариант в итоге победил? Ответ в статье.
🔗 Читать статью на Хабре!