Я читал Руководства по Rails и обнаружил новый синтаксис для создания таблиц соединений:
class CreateJoinTableCustomerProduct < ActiveRecord::Migration[5.0]
def change
create_join_table :customers, :products do |t|
# t.index [:customer_id, :product_id]
# t.index [:product_id, :customer_id]
end
end
end
Возможно, этот вспомогательный метод create_join_table является новым в Rails 5 и генерирует соответствующую таблицу соединений в schema.rb.Но именно эта часть меня взволновала:
# t.index [:customer_id, :product_id]
# t.index [:product_id, :customer_id]
Обычно, если вы хотите добавить индекс к столбцу, вы делаете что-то вроде этого:
add_index :products, :product_id
Но почему в этоммиграция есть два индекса, с теми же двумя столбцами?Чем объясняется этот синтаксис?