У меня есть проблема, на которую я просто не могу найти ответ. Я разработал очень маленькое CRM-подобное приложение на PHP, управляемое MySQL. Пользователи этого приложения могут импортировать новые данные в базу данных через загруженный файл CSV. Одной из проблем, над которой мы сейчас работаем, является дублирование или, что более важно, почти дублирование записей. Например, если у меня есть следующее:
Record A: [1, Bob, Jones, Atlanta, GA, 30327, (404) 555-1234]
и
Record B: [2, Bobby, Jones, Atlanta, GA, 30327, Bob's Shoe Store, (404) 555-1234]
Мне нужен способ увидеть, что они оба похожи, взять запись с дополнительной информацией (в данном случае запись B) и удалить запись A.
Но здесь все становится еще сложнее. Это необходимо сделать после импорта новых данных, и функцию, которую я могу выполнить, чтобы удалить дубликаты из базы данных в любое время. Я был в состоянии собрать что-то вместе в PHP, который получает все повторяющиеся строки из таблицы MySQL и сопоставляет их по номеру телефона или с помощью implode () для всех столбцов в строке, а затем с помощью strlen (), чтобы определить самую длинную запись ,
Должен быть лучший способ сделать это, и более точный.
Есть ли у кого-нибудь из вас блестящие предложения, которые я смогу реализовать или развить? Очевидно, что при импорте новых данных мне нужно будет открыть их CSV-файл в массив или временную таблицу MySQL, выполнить поиск дубликатов или аналогичный поиск, затем перекомпилировать CSV-файл или добавить все из временной таблицы в основную таблицу. Я думаю. :)
Я надеюсь, что некоторые из вас могут указать на то, что мне может не хватать, которое может масштабироваться несколько прилично, и это несколько точно. Я бы предпочел представить список дубликатов, в которых мы «не уверены», для пользователя длиной 5 записей, а не 5000.
Заранее спасибо!
Alex