mysql – 数据库设计:保存谷歌地图数据
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 数据库设计:保存谷歌地图数据,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2633字,纯文字阅读大概需要4分钟。
内容图文
![mysql – 数据库设计:保存谷歌地图数据](/upload/InfoBanner/zyjiaocheng/903/b22f296e101d446995b2f391d7493f7f.jpg)
我正在使用MySQL.
给定部分或完整地址,Google Map API将返回如下内容:
"address_components" : [
{
"long_name" : "1600",
"short_name" : "1600",
"types" : [ "street_number" ]
},
{
"long_name" : "Amphitheatre Pkwy",
"short_name" : "Amphitheatre Pkwy",
"types" : [ "route" ]
},
{
"long_name" : "Mountain View",
"short_name" : "Mountain View",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Santa Clara",
"short_name" : "Santa Clara",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "California",
"short_name" : "CA",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
},
{
"long_name" : "94043",
"short_name" : "94043",
"types" : [ "postal_code" ]
}
]
假设我正在开发一个应用程序,其中:
>帐户所有者可以指定他们的位置,和
>支持按位置搜索
我应该如何存储从Google获得的地址组件,以便我可以查询以下内容:
>特定国家/地区有多少帐户所有者?
>特定州有多少帐户所有者?
>特定邮政编码中的帐户所有者有多少?
>等
一种非常简单的方法是将单个地址组件存储在一个表中:
TABLE: account
- account_id (PK)
- street_number
- route
- locality
- administrative_area_level_2
- administrative_area_level_1
- country
- postal_code
我会留下空白的Google无法提供的任何信息(例如,如果帐户所有者未提供街道号码,那么Google API也不会返回street_number).我认为这是最简单的查询.但是,此数据不会正常化.
或者,我可以将数据库设计为具有多个表,例如:
TABLE: country
- country_id (PK)
- name
TABLE: administrative_area_level_1
- administrative_area_level_1_id (PK)
- country_id (FK)
- name
… 等等
这可能会使数据正常化,但查询可能会很麻烦.此外,缺少信息也可能导致一些问题.例如,如果Google返回country和administrative_area_level_2,则会跳过administrative_area_level_1(我不确定这是否可行)? administrative_area_level_2需要一个administrative_area_level_1_id作为其FK – 没有它,模型就会中断.
另一个想法可能是使用嵌套集或邻接模型.数据将被标准化,并且可能能够更好地处理丢失的信息.
我的直觉是,最简单的模型 – 允许冗余数据的模型 – 对我来说是最好的选择.数据不是来自我,它来自谷歌,我认为我只需要数据,所以我可以进行这些按位搜索.也许我不会遇到异常?
有关如何建模的任何建议?
解决方法:
在您开始担心如何为从Google地图检索的数据建模之前,您可能需要先查看服务条款,电话是http://code.google.com/apis/maps/terms.html.
特别注意10.1.3(a):
“您不得复制,翻译,修改或创建衍生作品(包括创建或贡献数据库),或公开展示任何内容或其任何部分……”
我会说,几乎明确禁止你试图构建的那种应用程序.如果您想查询Google对您的某个帐户所有者的地址信息,则必须使用Google的API执行此操作 – 而不是复制其数据并在您自己的应用程序中执行此操作.
内容总结
以上是互联网集市为您收集整理的mysql – 数据库设计:保存谷歌地图数据全部内容,希望文章能够帮你解决mysql – 数据库设计:保存谷歌地图数据所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。