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