2008-10-01 25 views
2

工作流程是这样的:我如何找到类似的地址记录?

  1. 我接收优惠券的扫描数据(名字,姓氏,邮政编码,城市+其它信息)就可以了。
  2. 在创建新客户之前,如果客户可能已经存在,我必须搜索数据库。

现在我的问题:当没有可用的唯一ID时,找到现有客户的最佳方式是什么?

PS:我确实有数据库中的一个唯一的ID,只是没有在我们收到的优惠券;)

回答

3

我们使用Levenshtein distance算法来检查用户是否有重复。但是,我们有相当严格的规则来输入数据本身,所以我们必须检查是否存在歪曲,情况差异等。

-3

您可以查询与给定数据匹配的所有客户的数据库,例如

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,查询会给你这个ID。如果它大于1,你可能会有几个同名的客户住在同一地区,需要找到一种方法来处理这种情况。但是,这将在这里证明了一个新问题;-)


P.S:如果你没有唯一的ID的所有,重新设计你的数据库。

0

如果您有SQL Server 2005,则可以通过SSIS将数据带入,并使用模糊查找来检查相同性。

2

如果你真的想以正确的方式,简单的方式,完整的方式购买Netrics。

http://www.netrics.com/

我们买了它,并包裹着它的应用程序,让我们的员工配合他们想要的任何东西。可以配置每列的置信区间,建立可以将Robert映射到Bob,并将John映射到Jack的文字区。这是令人惊叹的,并被该国一些较大的机构用于清理各种名单。