レールrails g migration create_foo_bar_join_table
は、以下のマイグレーションを発生5コマンドに参加:根拠を表生成デフォルト
class CreateFooBarJoinTable < ActiveRecord::Migration[5.0] def change create_join_table :foos, :bars do |t| # t.index [:foo_id, :bar_id] # t.index [:bar_id, :foo_id] end end end
なぜ複合キーで発生スタブうち2つ(双方向)のインデックス?また、なぜ彼らはコメントアウトされていますか?私はこれで混乱し、これらの提案されたデフォルトを持つための明確な説明を見つけることができません。
上記のインデックスは、以下のものより効率的です。 ... create_join_table :foos, :bars do |t| t.index :foo_id t.index :bar_id end ...
私はこれより深くに見する機会を持っていなかった、多分あなたは既にhttps://github.com/rails/rails/blob/master/activerecord/libを見て撮影していますこれに関する詳細は/rails/generators/active_record/migration/templates/migration.rb#L25? – lshepstone
複合インデックスは、特にMySQL向けです。知っておいてよかった。 – jusko