使用 Rails 中的索引创建 Join-Table
Creating Join-Table with indexes in Rails
当我想创建一个join-table的时候,我从rubyguides中了解到,我可以直接设置索引如下:
create_join_table :products, :suppliers do |t|
t.index [:product_id, :supplier_id]
t.index [:supplier_id, :product_id]
end
但是当搜索更多关于我阅读的主题时,我应该在创建 table 之后添加索引:
add_index(:products_suppliers, [:product_id, :supplier_id], :unique => true)
Rails (4) 理解第一种方法还是在创建我的 table 之后添加索引更好?
我的两个示例会提供相同的索引还是两个不同的索引?
好吧,正如@Jason 指出的那样,我尝试了两种方法,结果结果是一样的:)
create_join_table :products, :suppliers do |t|
# either directly here
t.index [:product_id, :supplier_id], :unique => true
end
# or afterwards, both work
add_index(:products_suppliers, [:product_id, :supplier_id], :unique => true)
即使定义 uniqueness
在第一个示例中也有效。
当我想创建一个join-table的时候,我从rubyguides中了解到,我可以直接设置索引如下:
create_join_table :products, :suppliers do |t|
t.index [:product_id, :supplier_id]
t.index [:supplier_id, :product_id]
end
但是当搜索更多关于我阅读的主题时,我应该在创建 table 之后添加索引:
add_index(:products_suppliers, [:product_id, :supplier_id], :unique => true)
Rails (4) 理解第一种方法还是在创建我的 table 之后添加索引更好?
我的两个示例会提供相同的索引还是两个不同的索引?
好吧,正如@Jason 指出的那样,我尝试了两种方法,结果结果是一样的:)
create_join_table :products, :suppliers do |t|
# either directly here
t.index [:product_id, :supplier_id], :unique => true
end
# or afterwards, both work
add_index(:products_suppliers, [:product_id, :supplier_id], :unique => true)
即使定义 uniqueness
在第一个示例中也有效。