Estou implementando uma funcionalidade para rastrear quais artigos um usuário leu.
create_table "article", :force => true do |t|
t.string "title"
t.text "content"
end
Esta é minha migração até agora:
create_table :user_views do |t|
t.integer :user_id
t.integer :article_id
end
A tabela user_views sempre será consultada para procurar ambas as colunas, nunca apenas uma. Minha pergunta é como meu índice deve ser. Existe uma diferença na ordem dessas tabelas, deve haver mais algumas opções para isso ou algo assim. Meu banco de dados de destino é o Postgres.
add_index(:user_views, [:article_id, :user_id])
Obrigado.
ATUALIZAÇÃO:
Como apenas uma linha contendo os mesmos valores em ambas as colunas pode existir (visto que, ao saber se user_id LEU article_id), devo considerar a opção: unique? Se não me engano, isso significa que não tenho que fazer nenhuma verificação por conta própria e simplesmente inserir uma inserção sempre que um usuário visitar um artigo.