0

嗨,我有数据库表结构,如下表 - ItemLocation

ItemId varchar(10)          ItemGeo (geography)
123n13                      POINT (-79.660470500000017 43.5482682)
n4f923                      POINT (-79.7511776 43.6575816)

和更多的行............

我现在使用一个简单的插入来插入数据,但实际上我想按位置插入行,以便靠近的项目将留在数据库中,所以如果尝试插入一个新项目'q3eqwe2',那就是更多接近 123n13 所以它会在 123n13 旁边并替换 n4f923 索引,所有底部行都将移动到索引 + 1。这可行吗?

ItemId varchar(10)          ItemGeo (geography)
    123n13                      POINT (-79.660470500000017 43.5482682)
    q3eqwe2                     POINT (-79.66039911221 43.5479121)
    n4f923                      POINT (-79.7511776 43.6575816)

如果可行,我不想通过检查 ItemGeo 列的所有行来找到新行的完美索引,那么我可以添加新列,该列将根据项目位置进行索引,我可以轻松找到最近的位置匹配插入?希望它有意义:)

4

1 回答 1

1

我不确定这是否有意义。有效地使用地理类型,您要求将二维索引映射到地球上。如果 A 靠近 B,B 靠近 C,那么 A 可能靠近 C,或者远离 C,那么我们就进入了旅行商问题。您的索引在哪里开始和结束?

您可以在地理类型上创建空间索引。我认为这是最好的选择。

问题的根源是为什么你认为你需要这样做?

于 2012-07-24T19:59:52.023 回答