数据库设计,Google地图和地址字段

Sta*_*bie 5 database database-design google-maps

我想收集用户的地址,以便我可以在Google地图上绘制它们.我知道我需要存储他们的地址的纬度/经度值,我可以从谷歌地图API获得.

我正在寻找有关如何划分各种地址部分并将其保存到数据库的建议.我经常看到这样的事情:

  • 地址第一行
  • 地址第2行
  • 国家/地区/省
  • 邮编/邮政编码
  • 国家

不过,Google对这些地址组件进行了不同的分解.例如,请参阅:http://maps.googleapis.com/maps/api/geocode/json?address = 1600+Amphitheatre + Parkway,+ Mountain + View,+ CA&_sensor = false

我不确定Google地址组件的哪些部分等同于Web表单中常见的部分(例如,administrative_area_level_1始终是州/地区/省?).我想尽可能以原子方式存储各种地址组件,以便在以后显示地址信息时能够获得最大的控制权.

注意:我也打算存储formatted_address我认为在某些情况下可能有用的内容.

那么,我应该在我的数据库中存储什么?

Red*_*ing 4

地理编码文档的这一部分很好地描述了从反向地理编码器返回的数据类型。这些数据类型是由 Google 开发的,用于描述世界上的任何地址,因此可能是一个很好的起点。

根据以下引用,administrative_area_level_1 描述了次国家管辖区、美国/澳大利亚的州、日本的县、法国的省等:

Administration_area_level_1表示国家以下一级民事实体。在美国,这些行政级别是州。并非所有国家都具有这些行政级别。

您可能需要小心对其他国家/地区的这些数据类型所做的假设。例如,伦敦地址的Administration_area_level_1是England。但是,通过充分理解此模式,您应该能够在世界任何地方呈现区域设置友好的地址。