ユーザーが読んだ記事を追跡する機能を実装しています。
  create_table "article", :force => true do |t|
    t.string   "title"
    t.text     "content"
  end
これがこれまでの私の移行です:
create_table :user_views do |t|
  t.integer :user_id
  t.integer :article_id
end
user_viewsテーブルは、常に1つだけではなく、両方の列を検索するために照会されます。私の質問は私のインデックスがどのように見えるべきかです。これらのテーブルにいくつかのオプションがある場合、これらのテーブルの順序に違いはありますか?私のターゲットDBはPostgresです。
add_index(:user_views, [:article_id, :user_id])
ありがとう。
更新:
両方の列に同じ値を含む行は1つしか存在できないため(user_idがarticle_idを読み取ったかどうかを知るため)、: uniqueオプションを検討する必要がありますか?私が誤解していないのであれば、それは自分でチェックする必要がなく、ユーザーが記事にアクセスするたびに挿入するだけです。
                  「user_viewsテーブルは、常に1つだけではなく、両方の列を検索するために照会されます。」-「このユーザーが表示したすべての記事を検索する」、または「この記事を表示したすべてのユーザーを検索する」クエリはありませんか?それは驚くべきことです。
                
                
                  
                    —
                    David Aldridge 2015