2012-04-12 6 views
0

У меня есть куча данных клиента, которая нормализована на несколько таблиц. Я хочу выбрать наилучшие критерии, чтобы лучше понять, что клиент может быть одним и тем же. Должен быть баланс между минимизацией количества дубликатов, а также минимизацией ложных срабатываний и, следовательно, прерыванием пользователей, чтобы спросить о возможных ошибках.Обнаружение дублирующего клиента

Я рассматриваю комбинацию имени и фамилии + номер телефона || адрес электронной почты.

Первый вопрос: что является хорошим набором критериев для определения того, может ли клиент может быть таким же, как и у другого клиента.

Второй вопрос: для этого конкретного приложения я хочу только обнаружить дубликаты для клиентов, которые зарегистрировались в течение последних двух месяцев или около того. Это вообще меняет критерии обнаружения?

ответ

1

Как бы вы хотели спросить клиента, являются ли они владельцем дубликата?

«Эй, Сэм Джонс, есть еще один Сэм Джонс, у которого есть ip в вашем регионе, его электронная почта - [email protected], и ваша последняя регистрация имела электронное письмо [email protected], являются ты тот же парень/девочка?

Если приведенное выше значение даже близко к вашему сценарию, тогда вы будете пропускать личную информацию. т.е. другой адрес электронной почты Сэма Джона.

Обычно вы не позволяете клиенту регистрироваться с тем же адресом электронной почты, а во-вторых, вы подтверждаете, что адрес электронной почты, который они подписывают, действителен. Таким образом, если они снова регистрируются с ошибкой в ​​письме, они не могут его проверить.

+0

Кроме того, я уверен, что обойти эту проверку дублирования будет легко. Просто создайте новый адрес электронной почты, и все готово. Возможно, используйте номер наземной линии для первой учетной записи и номер GSM для второго. Обычно вы просто проверяете, есть ли имя пользователя (если заказчик нуждается в нем), и письмо allready существует. Может быть, почтовый адрес тоже, а затем показать сообщение о том, что есть клиент с таким именем по тому же адресу. Но проверять звонки? Я знаю compeny, который разделяет его число, как бы вы справились с этим? – Bernhard

+0

В этом случае есть сотрудник, который вводит информацию о клиенте. Они берут информацию от клиента, а затем будут представлены потенциальные дубликаты информации. Как правило, будет больше общей информации, которая будет напоминать клиенту о том же, что и другой. Например, клиент, возможно, уже указал адрес и имя, которое было написано по-разному, и номер телефона и т. Д. Кажется, что есть случаи, когда вы захотите дедуктировать запись клиента. –

+0

Но как вы это делаете без подтверждения клиента?Я понимаю, почему Google делает это в контактах google, но я ввел эту информацию, или я получил ее, поэтому я знаю, является ли это дубликат или нет. –

0

Важно, чтобы выбрать атрибуты, которые вряд ли могут измениться. Если вы используете что-то вроде номера телефона или адреса электронной почты, вы рискуете иметь дубликаты в любое время, когда кто-то меняет провайдеров или поставщиков мобильных телефонов.

Если эти клиенты являются клиентами, совершившими покупки в прошлом, вы можете сохранить хэш своего номера кредитной карты и хэш своего платежного адреса. Всякий раз, когда они делают другую покупку, хешируют информацию о платежах и сравнивают ее с вашей базой данных. (Заметьте, что я сказал, чтобы хранить хэш, НЕ их фактическая информация оплаты)

+0

Вы можете обнаружить, что если вы храните хэш номера кредитной карты, на самом деле довольно легко вернуться к исходному значению, которое может нарушить правила PCI. –

+0

@ColinBreame, который зависит от используемого вами алгоритма хеширования. Криптографически сильные хеши, такие как SHA-256, считаются однонаправленными и обычно не нарушают правил безопасности данных, особенно если они соленые. Хэши с известными уязвимостями (например, MD5) могут быть разными. – bta

0

, если этот вопрос имеет еще интерес к вам, пожалуйста, проверьте этот инструмент https://sourceforge.net/projects/deduper/

Я написал этот инструмент в основном для целей, которые вы упомянули в этом вопросе

 Смежные вопросы

  • Нет связанных вопросов^_^