この列での並べ替えの検索が高速化されるため、より良いでしょう。そして、外部キーはよく検索されるものです。
Railsのバージョン5は自動的に作成されるため、詳細については、こちらを参照してください。 a> 。
いいえ、これはすでにRailsによって行われています
いいえ、上記と同じです
その場合、インデックスは2つの列を組み合わせたインデックスになります。 1つのcategory_id
のすべてのエントリが必要な場合を除いて、これは意味がありません。 そして 1つのstate_id
(category_id
である必要があります category
ではありません )同時に。
このようなインデックスを使用すると、次のリクエストが高速化されます。
# rails 2
User.find(:all, :conditions => { :state_id => some_id, :category_id => some_other_id })
# rails 3
User.where(:state_id => some_id, :category_id => some_other_id)
どこ
add_index :users, :category_id
add_index :users, :state_id
これらのリクエストをスピードアップします:
# rails 2+3
User.find_by_category_id(some_id)
User.find_by_state_id(some_other_id)
# or
# rails 2
User.find(:all, :conditions => {:category_id => some_id})
User.find(:all, :conditions => {:state_id => some_other_id})
# rails 3
User.where(:category_id => some_id)
User.where(:state_id => some_other_id)
いいえ、これを行うと、1つのカテゴリに入ることができるのは1人のユーザーだけですが、カテゴリの意味は、より多くの多くを入れることができるということです。 ユーザーを1つのカテゴリに分類します。 User
次のようなモデルがありますbelongs_to :category
カテゴリモデルでは、has_many :users
のようなものがあります 。 has_many
がある場合 関係foreign_key
フィールドは一意であってはなりません!
これに関する詳細については、tadman
をご覧ください。 素晴らしい