世界上所有地址都有共同的街道地址数据库设计吗?

Ars*_*yan 116 sql database-design postal-code street-address

我是一名程序员,说实话,不知道世界的街道地址结构,我的国家是如何构建的:)所以哪个是存储街道地址的最佳和常见的数据库设计?它应该是如此简单易用,快速查询和动态存储世界上所有街道地址,只需一个ID识别非常
感谢

Edw*_*oss 116

可以在一组标准字段中表示来自许多不同国家的地址.命名或编号建筑所在的指定通道(通道)的基本概念是相当标准的,有时除了中国.其他近乎普遍的概念包括:命名定居点(城市/城镇/村庄),一般可称为地区; 命名区域并分配字母数字邮政编码.请注意,邮政编码(也称为邮政编码)仅在某些国家/地区仅为纯数字.如果你真的想要通用,你将需要很多字段.

万国邮联万国邮政联盟以标准格式提供许多国家的地址数据.请注意,UPU格式包含整个国家/地区的所有地址(低至可用字段精度),因此它是关系型的.如果存储客户地址,其中只存储所有可能地址的一小部分,则最好使用包含所有字段和每行一个地址的单个表(或平面格式).

存储地址的合理格式如下:

  • 地址1-4行
  • 局部性
  • 区域
  • 邮政编码(或邮政编码)
  • 国家

地址线1-4可以保存组件,例如:

  • 建造
  • 亚大厦
  • 房屋号码(门牌号码)
  • 前提范围
  • 通道
  • 亚大道
  • 双重依赖的地方
  • 子局部性

通常只使用3个地址线,但这通常是不够的.当然可以要求更多行代表官方格式的所有地址,但逗号总是可以用作行分隔符,这意味着仍然可以捕获信息.

通常,数据分析将按地点,区域,邮政编码和国家/地区进行,这些元素在输入数据时非常容易让用户理解.这就是为什么这些元素应该存储为单独的字段.但是,不要强制用户提供邮政编码或区域,它们可能不会在本地使用.

地点可能不清楚,特别是地图地点和邮政地点之间的区别.邮政当局是邮政当局认为的邮局,有时可能是附近的大城镇.但是,邮政编码通常会解决那里的任何问题或差异,即使没有使用官方的后地方也允许正确的交付.

  • 此外,一些国家(例如爱尔兰共和国)不使用邮政编码.如果我有一个分数我必须输入na(不适用)作为邮政编码,因为它是一个必需的领域人...我现在有五六美分:) (16认同)

Mit*_*eat 46

看看数据库答案.具体来说,这涵盖了许多情况:

(所有可变长度字符数据类型)

AddressId
Line1
Line2
Line3
City
ZipOrPostcode
StateProvinceCounty
CountryId
OtherAddressDetails
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 数据类型很重要 - 并非每个国家/地区都有整数邮政编码!如果同事在加拿大与客户快速找到这个. (9认同)
  • 对于国家/地区ID,您应该使用ISO 3166 2个字母(或3个字母)的国家/地区代码。提议的架构允许您存储分析的地址;它不会告诉您如何格式化。(哦,英国有字母数字邮政编码-IP31 3GH,SE1W 9PQ等。我认为第二组始终是NAA;第一组以A开头并且包含至少一个N(A = alpha,N =数字),但没有什么能让我感到惊讶的。) (2认同)

and*_*ora 25

问问自己存储这些数据的主要目的是什么?您是否打算实际向该地址的人发送邮件?跟踪人口统计,人口?作为一些基本认证/验证的一部分,能够向呼叫者询问他们的正确地址吗?上述所有的?以上都不是?

根据您的实际需要,您将确定a)它并不重要,您可以采用自由文本方法,或b)所有国家/地区的结构化/特定字段,或c)特定国家/地区的架构.


Emi*_*ily 12

有时距离街道地址最近的是城市.

我曾经有一个项目将印度的所有中学都放在谷歌地图上.我使用Google API编写了一个精巧的程序,并认为这很容易.

然后我从客户端获取数据.一些学校的地址是"从市场旁边,理发师旁边"或"近老巴士站".

它让我的任务变得更加艰难,因为不幸的是,Google API不支持这种格式.

  • 亚洲地址也为此臭名昭著。“上海忍者西街73号2号楼2号楼,上层第二电梯,上海市第468工业区食堂旁办公综合楼456789” ... (2认同)

Jon*_*ler 9

对于国际地址,如果将信息分解为字段,则很难找到格式化信息的方法.例如,意大利地址使用:

<street address>
<zip> <town> <region>
<country>
Run Code Online (Sandbox Code Playgroud)

Via Eroi della Repubblica
89861 Tropea VV
Italy
Run Code Online (Sandbox Code Playgroud)

这与美国地址的顺序有很大不同 - 在第二行.

另见SO问题:

另请查看标签' 邮政编码 '.


编辑:地区和城镇的逆序 - 每UPU


Hra*_*ban 5

也许这很有用:https: //gist.github.com/259744 对于一个项目,我收集了一份关于世界上所有国家的信息表,包括ISO代码,顶级域名,电话代码,汽车标志,长度和正则表达式压缩.不幸的是,国家名称和评论仅限于德语...

  • 虽然此链接可以回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会变得无效。- [来自评论](/review/low-quality-posts/27223429) (2认同)
  • 现在,欢迎您提出评论建议,但根据 SO 指南,答案必须是独立的。 (2认同)