【问题标题】:Rails, postgres, index on presence of columnRails,postgres,列存在的索引
【发布时间】:2014-04-26 12:34:39
【问题描述】:

我正在构建一个 Rails 应用程序,其中集合中的一些文档将包含地理信息。我想在数据库中索引这些文档,这样我就可以快速抓取那些具有非空值的文档。我不需要地理值,所以其中一些为空。索引应该只保存具有非空坐标的记录。地理信息的列是latitudelongitude。我建立的索引是:

add_index :thing, [:latitude, :longitude]

或者,因为 lat 和 lng 将始终同时存在,它可能只是:

add_index :thing, :latitude

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-12-27
      • 2011-03-16
      • 1970-01-01
      • 1970-01-01
      • 2014-03-17
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      相关资源
      最近更新 更多