如何比较不同格式的地址(php / mysql)
发布时间:2020-12-13 22:50:47 所属栏目:PHP教程 来源:网络整理
导读:我正在开发一个已建立的php mysql Web应用程序,其中包含一些相当大的数据. 作为数据管理例程的一部分,地址的新数据将从两个不同的源添加到数据库(导入). 此数据中的所有地址均来自英国. 在插入新地址或将记录与现有地址相关联之前,应用程序使用addressRecord
我正在开发一个已建立的php
mysql Web应用程序,其中包含一些相当大的数据.
作为数据管理例程的一部分,地址的新数据将从两个不同的源添加到数据库(导入). 此数据中的所有地址均来自英国. 在插入新地址或将记录与现有地址相关联之前,应用程序使用addressRecord.address1 = address1 AND addressRecord.postcode = postcode作为冲突检测. 麻烦的是碰撞测试没有定论.由于两种不同的数据源提供了稍微不同的地址格式. 来源1 address1 = 'FLAT N,RICHMOND HILL GATE,1' address2 = 'RICHMOND HILL DRIVE' address3 = 'BOURNEMOUTH' postcode = 'BH2 6LT' 来源2 address1 = 'Flat N' address2 = 'Richmond Hill Gate' address3 = '1 Richmond Hill Drive' postcode = 'BH2 6LT' 因为这是一个已建立的应用程序,所以这个复制已经存在于地址表中,我必须处理,但是新数据也会不断导入,并且必须与地址记录相关. 所以我正在寻找一种结论性的(几乎是决定性的可能做到的)方法来比较具有略微不同格式的地址,这也是高性能的(10百万行数据). 到目前为止,我已经考虑过计算一个识别字段,该字段可以扩展到现有数据,并为新导入计算,例如可以连接3个地址字段,删除所有标点符号,或者可能只是数字.或者…感激地收到任何想法. 解决方法
您必须将所有地址转换为标准化的地址格式,如@chris所说.我认为您无法在数据库中“即时”执行此操作.您将依赖于代码来执行此操作并将结果存储在数据库中.您遇到的最大问题是您拥有的数据缺少完整性:带或不带邮政编码的相同地址;具有相同邮政编码但具有不同街道名称或城市的地址;具有不同邮政编码的相同地址;街道名称的写法不同,’W Churchill Ln’与’Winston Churchill Lane’.你需要模糊逻辑让计算机决定什么是正确的. 来自各种来源的数据在每个源的格式设置中可能是一致的,您可能会以某种方式从中获益.另一件事是一个来源比其他来源更可靠,你也可以利用它来获得优势.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |