Rails,postgres,列存在的索引

时间:2014-03-19 22:52:19

标签: ruby-on-rails indexing database-migration

我正在构建一个rails应用程序,其中集合中的某些文档将具有地理信息。我想在数据库中索引这些文档,以便我可以快速获取具有非null值的文档。我不需要地理值,因此其中一些是空的。索引应仅保存具有非空坐标的记录。地理位置信息的列为latitudelongitude。我建立的索引是:

add_index :thing, [:latitude, :longitude]

或者,因为lat和lng将一直存在,所以它可能只是:

add_index :thing, :latitude

但我不确定这是对列的非零值进行索引的最佳策略。

什么是对列的非零值进行索引的最佳策略?

1 个答案:

答案 0 :(得分:0)

我在ActiveRecord文档中唯一能找到的就是对索引使用'unique:true'约束。它不允许重复坐标,这将不允许多个[latitude:null,longitude:null]记录。我假设您不需要地理信息,但在提供时会检查纬度和经度。

add_index :documents, [:latitude, :longitude], unique: true