Создание Join-таблицы с индексами в Rails
Когда я хочу создать таблицу соединений, то я читаю из rubyguides, что я могу установить индекс напрямую следующим образом:
create_join_table :products, :suppliers do |t|
t.index [:product_id, :supplier_id]
t.index [:supplier_id, :product_id]
end
Но при поиске по теме, которую я прочитал, я должен добавить индекс после создания таблицы:
add_index(:products_suppliers, [:product_id, :supplier_id], :unique => true)
Rails (4) понимает первый подход или лучше добавить индекс после создания моей таблицы?
Могут ли мои два примера дать один и тот же индекс или это два разных?
1 ответ
Решение
Хорошо, как заметил @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
работает в первом примере.