首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySql中的快速邮政编码搜索

MySql中的快速邮政编码搜索
EN

Stack Overflow用户
提问于 2014-10-14 18:39:06
回答 1查看 79关注 0票数 0

我有一个花卉的MySQL表,我正在尝试编写一个搜索函数,它将以邮政编码作为输入,并找到所有交付到该邮政编码的弗洛拉人。我桌上的每个花店记录都有3项。

  • 地理编码经度(以花店地址为中心)
  • 地理编码纬度(以花店地址为中心)
  • 一种由城镇名称和邮政编码组成的字符串字段,花店提供的服务包括:波士顿(02215,02108,02109),切尔西(02150),萨默维尔(02143,02144,02145)。

让我说,我想找到所有的花店谁送"02108“。在MySQL中实现此搜索的最佳方法是什么?

我在想

  1. 完全匹配的搜索-但这将需要每一个搜索扫描整个表。效率低下?
  2. Haversine搜索+精确匹配-使用纬度/经度值将搜索范围缩小到15英里半径 MySQL Great Circle Distance (Haversine formula),然后在这些结果中执行精确匹配。
  3. 还有别的吗?

会感谢你的想法和意见。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-14 18:49:42

正确的方法是将邮政编码列表表示为一个连接表,每个花店有一行,每个邮政编码有一行。所以,您的第一位花店可能有以下几行:

代码语言:javascript
复制
FloristId   Zip
1           02215
1           02108
1           02109
1           02150
1           02143
1           02144
1           02145

然后,在zip列上构建一个索引。然后,您可以使用一个简单的连接,让花店谁交付到一个特定的邮政编码。

您可以有一个参考表来查找主要城镇的邮政编码。美国人口普查局有一张从邮政编码列表区到城镇名称的地图。USPS可能也有类似的地方。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26367970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档