我在 Ruby on Rails 模型中有一个多态关联。在迁移中,我有:
create_table "offer_defs" do |t|
t.integer "product_def_id"
t.string "product_def_type"
...
end
我想为这个关联添加一个索引。我在以下选项之间犹豫:
add_index :offer_defs, [:product_def_id, :product_def_type]
或
add_index :offer_defs, :product_def_id
add_index :offer_defs, :product_def_type
或 也许两者都有?
优缺点都有什么?
最佳答案
我会选择后一种。如果您需要计算特定类型的多态附件(您可能会这样做),它会有所帮助。如果您想要多列索引,我至少会交换两列的顺序(将类型放在第一位),因为该类型字段比 id 字段更有可能是该表上的查询参数。
注意:我假设您在这里使用的是 mysql,如果您使用的是不同的数据库,我的建议可能应该被忽略,或者至少应该检查一下。
关于ruby-on-rails - 应该为 Ruby on Rails 中的多态关联添加哪些索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/306517/