Ich implementiere Funktionen, um zu verfolgen, welche Artikel ein Benutzer gelesen hat.
create_table "article", :force => true do |t|
t.string "title"
t.text "content"
end
Dies ist meine bisherige Migration:
create_table :user_views do |t|
t.integer :user_id
t.integer :article_id
end
Die Tabelle user_views wird immer abgefragt, um nach beiden Spalten zu suchen, niemals nur nach einer. Meine Frage ist, wie mein Index aussehen soll. Gibt es einen Unterschied in der Reihenfolge dieser Tabellen, sollte es weitere Optionen geben oder was auch immer. Meine Ziel-DB ist Postgres.
add_index(:user_views, [:article_id, :user_id])
Vielen Dank.
UPDATE:
Da nur eine Zeile mit denselben Werten in beiden Spalten vorhanden sein kann (da ich weiß, ob user_id article_id gelesen hat), sollte ich die Option: unique berücksichtigen? Wenn ich mich nicht irre, bedeutet dies, dass ich nicht jedes Mal selbst nachsehen und einfach jedes Mal eine Einfügung vornehmen muss, wenn ein Benutzer einen Artikel besucht.