2011-12-06 19 views
1

我需要关于即时消息处理的体系结构问题的帮助。用户输入位置和半径(例如距离)。软件在一个(巨人=几十万个帖子)数据库表中搜索用户位置和彼此的“帖子”距离小于输入距离的帖子。查找位置距离小于或等于动态值的帖子

这对我来说很难解释,但想象一下有两个帖子的表格,点a和点c,点U是用户的位置。用户输入了一个位置和一个半径,并且a和c的位置和半径是预定义的(存储在数据库中)。

Crossmatching areas

在这种情况下,我只会有兴趣在A点,因为这两个区域相互交叉。我应该如何将这个变成一个有效的方式来处理数十万个数据库的数据?在数据库中,我将存储经度,纬度和半径。

回答

2

取决于您正在使用哪个数据库服务器,但需要查看可能包含的GIS功能。例如,MS SQL Server 2008具有内置的几何类型,而PostgreSQL具有PostGIS。 Oracle也有类似的东西。无论如何 - 这些原生GIS格式带有空间查询功能,可以处理您正在谈论的事情 - 在给定距离内搜索匹配项等等。一次切换到适当的数据类型非常简单。

编辑

由于您使用的SQL 2008,和您的数据是经/纬度,我建议“地理志”而不是“几何”数据类型。看看这里:http://msdn.microsoft.com/en-us/library/cc280766.aspx

+0

谢谢你的回应。我会深入研究它。我们将运行SQL Server 2008 R2 –

+0

请参阅上面的更新 –