我正在设计一个需要在数据库中保存几何形状的应用程序。我还没有选择数据库管理系统。
在我的应用程序中,所有数据库查询都将有一个边界框作为输入,作为输出,我想要该数据库中的所有形状。我知道具有空间索引的数据库用于此类应用程序。但在我的应用程序中,不会有任何类型的查询“给我 x/y 附近的对象”或其他在 GIS 应用程序中有用的更复杂的查询。
我计划拥有一个没有空间索引的数据库,并且查询看起来像:
SELECT * FROM shapes WHERE x < max_x AND x > min_x AND y < max_y AND y > min_y
并在列x (double)
和y (double)
. 据我所知,我真的不需要具有空间索引的数据库,但是我的应用程序与那种应用程序很接近。
即使我想要附近的查询,我也可以在该点周围创建一个足够大的边界框。或者这会导致性能不佳?
我真的需要空间数据库吗?什么时候需要空间索引?
编辑: 搜索查询实际上比我上面写的要高级一点,因为我处理几何形状,我将输入一个边界框,它将返回多个形状(带边界框),这些形状在里面或干扰框在查询中。但是在阅读了所有好的答案之后,我仍然认为我可以在没有空间索引的情况下做到这一点。