处理多个公司地址格式的地址规范化

时间:2014-09-04 20:16:23

标签: database-design database-normalization

我正在构建一个平台,该平台与特定位置产品的20多个供应商API集成在一起。在我们开始构建产品时,我们已经注意到,我们从某些供应商处获得的位置与其他供应商的位置不同。此外,相同的地址可能与其他合作伙伴的DB有不同的电话和/或电子邮件。

实施例。 5th W St或5th West St的地址相同;但是,供应商记录的不同 或107 Maple Dr有来自不同供应商的电话555-555-5555和444-444-4444

我很好奇设置一个可以处理特定差异的数据库,并将它们全部关联到我们内部的位置/电话/电子邮件的主表中。为了让我们回复他们,我们必须将我们的地址/电话/电子邮件转换为他们的确切格式。我觉得这里有一个关于规范化的最佳实践,而不是存储20多个不同的地址表。任何想法都将不胜感激。

2 个答案:

答案 0 :(得分:1)

除非这是您的核心竞争力,否则请使用第三方。如果您不介意违反谷歌的服务条款,他们的地图API将更正地址。或者使用商业产品,例如:http://smartystreets.com/products/liveaddress-api

答案 1 :(得分:0)

就个人而言,我会做一些参考,我知道“W”和“WEST”是相同的,所以当我导入数据时,如果它是West而不是W,那么我会改变它。写街道名称并没有多少不同的方式,所以如果你将它们分解得足够多,那么任务就不应该那么糟糕。

我将它们分成:数字,方向(N,S,E,W),名称,类型? (不知道该怎么称呼它)(Street,Road,Blvd等),当我将它们读入“主地址表”时,将它们改为我想要的那样。

通过这种方式,您可以检查重复项并使所有内容都采用相同的格式。