【发布时间】:2014-02-02 14:04:58
【问题描述】:
我想在网站上实现按距离搜索。 必须有一个居住城市的用户才能找到所有居住在 100 或 200 公里范围内的用户。
我的数据库中有一个表格,用于存储所有城市及其坐标。
我想创建另一个表来存储所有城市之间的距离,但我的数据库包含 36,000 个城市,它可能会产生很多记录...
知道我的项目将使用 Symfony 和 Doctrine 开发,我怎样才能更简单地进行搜索?
先谢谢了
【问题讨论】:
我想在网站上实现按距离搜索。 必须有一个居住城市的用户才能找到所有居住在 100 或 200 公里范围内的用户。
我的数据库中有一个表格,用于存储所有城市及其坐标。
我想创建另一个表来存储所有城市之间的距离,但我的数据库包含 36,000 个城市,它可能会产生很多记录...
知道我的项目将使用 Symfony 和 Doctrine 开发,我怎样才能更简单地进行搜索?
先谢谢了
【问题讨论】:
您可以在这里使用正确答案来确定坐标之间的距离。
【讨论】:
出于性能原因,您需要使用geospatial index 来有效地查询这样的数据库。例如 MongoDB 有一个 feature 。
如果性能不是问题,您可以简单地将位置存储在关系数据库表中并在 SQL 中计算距离。有关此解决方案的一些信息,请参阅此问题:Geo-Search (Distance) in PHP/MySQL (Performance)
【讨论】: