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

Database design 处理多公司地址格式的地址规范化,database-design,database-normalization,Database Design,Database Normalization,我正在构建一个平台,该平台与20多个供应商API集成,用于特定位置的产品。当我们开始构建产品时,我们注意到我们从一些供应商那里得到的地址与其他供应商的地址不同。此外,与其他合作伙伴星展银行相比,同一地址可能有不同的电话和/或电子邮件 例如,第五西大街或第五西大街为同一地址;但是,供应商的记录不同 或者107 Maple Dr的电话555-555-5555和444-444-4444来自其他供应商 我很好奇如何才能最好地建立一个数据库来处理具体的差异,并将它们都与我们内部的位置/电话/电子邮件主表联

我正在构建一个平台,该平台与20多个供应商API集成,用于特定位置的产品。当我们开始构建产品时,我们注意到我们从一些供应商那里得到的地址与其他供应商的地址不同。此外,与其他合作伙伴星展银行相比,同一地址可能有不同的电话和/或电子邮件

例如,第五西大街或第五西大街为同一地址;但是,供应商的记录不同 或者107 Maple Dr的电话555-555-5555和444-444-4444来自其他供应商


我很好奇如何才能最好地建立一个数据库来处理具体的差异,并将它们都与我们内部的位置/电话/电子邮件主表联系起来。但是,为了让我们能够给他们回正确的电话,我们必须将我们的地址/电话/电子邮件转换为精确的格式。我觉得这里的标准化与存储20多个不同的地址表相比,应该有一个最佳实践。如果您有任何想法,我将不胜感激。

就我个人而言,我会在我知道“W”和“WEST”是相同的情况下进行某种引用,因此当我导入数据时,如果数据是WEST而不仅仅是W,那么我会更改它。写街道名称的方法其实并没有那么多,所以如果你把它们分解得足够多的话,任务应该不会那么糟糕

我把它们分为:数字、方向(N、S、E、W)、名称、类型?(不知道该怎么称呼这个)(街道、道路、大道等),当我把它们读入“主地址表”时,把它们改成我想要的样子


这样,您可以检查副本,并以相同的格式保存所有内容。

除非这是您的核心能力,否则请使用第三方。如果你不介意违反谷歌的TOS,他们的映射API会更正地址。或者使用商业产品,例如:

如果您使用的是postgres,则可以使用PAGC地址标准化器和postgis tiger geocoder