如何找到类似的地址记录?
时间:2020-03-06 14:58:02 来源:igfitidea点击:
工作流程是这样的:
- 我收到一张优惠券的扫描件,上面带有数据(名字,姓氏,邮政编码,城市+其他信息)。
- 创建新客户之前,必须先搜索数据库(如果该客户可能已经存在)。
现在我的问题是:在没有唯一ID的情况下,找到现有客户的最佳方法是什么?
附言:我确实在数据库中有一个唯一的ID,只是没有在我们收到的优惠券上;)
解决方案
请参阅前面的问题:从字符串中解析可用的街道地址,城市,州,邮政编码。
如果我们需要类似的比赛,Soundex将为我们提供帮助。
我们在数据库中查询与给定数据匹配的所有客户,例如
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,则可能有多个同名客户住在同一地区,则需要找到一种应对这种情况的方法。但这将在这里提出一个新的问题;-)
附注:如果我们根本没有唯一的ID,请重新设计数据库。
我们正在使用Levenshtein距离算法来检查用户是否重复。但是,我们有非常严格的规则来输入数据本身,因此我们只需要检查是否键入错误,区分大小写等。
如果我们有SQL Server 2005,则可以通过SSIS引入数据,并使用模糊查找来检查是否相同。
如果我们真的想以正确的方式,简单的方式以及购买Netrics的完整方式来执行此操作。
http://www.netrics.com/
我们购买了它,并在它周围包装了一个应用程序,使我们的员工能够匹配他们想要的任何东西。可以为每列配置置信区间,构建叙词表,我们可以在其中将Robert映射到Bob,将John映射到Hyman。这是令人惊奇的,并被该国一些较大的机构用来整理各种清单。