Sto implementando funzionalità per tenere traccia degli articoli letti da un utente.
create_table "article", :force => true do |t|
t.string "title"
t.text "content"
end
Questa è la mia migrazione finora:
create_table :user_views do |t|
t.integer :user_id
t.integer :article_id
end
La tabella user_views verrà sempre interrogata per cercare entrambe le colonne, mai solo una. La mia domanda è come dovrebbe apparire il mio indice. C'è una differenza nell'ordine di queste tabelle, dovrebbe esserci qualche altra opzione o altro. Il mio DB di destinazione è Postgres.
add_index(:user_views, [:article_id, :user_id])
Grazie.
AGGIORNAMENTO:
Poiché può esistere solo una riga contenente gli stessi valori in entrambe le colonne (poiché sapendo se user_id HA letto article_id), dovrei considerare l'opzione: unique? Se non sbaglio significa che non devo fare alcun controllo da solo e semplicemente fare un inserto ogni volta che un utente visita un articolo.