Как я могу найти похожие записи адресов? - PullRequest
2 голосов
/ 01 октября 2008

Рабочий процесс выглядит так:

  1. Я получаю отсканированный купон с данными (имя, фамилия, почтовый индекс, город + разная информация).
  2. Прежде чем создать нового клиента, я должен выполнить поиск в базе данных, если клиент уже существует.

Теперь мой вопрос: как лучше найти существующего клиента, когда нет уникального идентификатора?

PS: У меня есть уникальный идентификатор в базе данных, но не в купонах, которые мы получаем;)

Ответы [ 5 ]

3 голосов
/ 01 октября 2008

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

2 голосов
/ 01 октября 2008

Если вы действительно хотите сделать это правильным, простым, полным способом, вы купите Netrics.

http://www.netrics.com/

Мы купили его и обернули вокруг него приложение, которое позволяет нашим сотрудникам подбирать все, что они захотят. Можно настроить доверительные интервалы для каждого столбца, построить тезаурусы, в которых можно сопоставить Роберта с Бобом и Джона с Джеком. Это удивительно и используется некоторыми крупными учреждениями в стране для очистки различных списков.

2 голосов
/ 01 октября 2008

См. Этот предыдущий вопрос: Разбор пригодного адреса улицы, города, штата, почтового индекса из строки .

Soundex поможет вам, если вам потребуются аналогичные совпадения.

0 голосов
/ 01 октября 2008

Если у вас есть SQL Server 2005, вы можете передавать свои данные через SSIS и использовать нечеткий поиск для проверки на одинаковость.

0 голосов
/ 01 октября 2008

Вы запрашиваете в базе данных всех клиентов, которые соответствуют заданным данным, например,

SELECT ID FROM tbl_customers WHERE 
   first_name LIKE 'JOHN' 
   AND last_name LIKE 'Doe' 
   AND zip_code=12345 
   AND city LIKE 'Ducktown'

Если количество возвращаемых строк равно 0, создайте новую запись в базе данных. Если это 1, запрос даст вам идентификатор. Если это> 1, у вас может быть несколько клиентов с одним и тем же именем, проживающих в одной и той же области, необходимо найти способ справиться с этой ситуацией Но это оправдывает новый вопрос здесь; -)


p.s .: Если у вас нет уникального идентификатора, перепроектируйте базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...