Wdrażam funkcję śledzenia, które artykuły użytkownik przeczytał.
create_table "article", :force => true do |t|
t.string "title"
t.text "content"
end
To jest moja dotychczasowa migracja:
create_table :user_views do |t|
t.integer :user_id
t.integer :article_id
end
Tabela user_views będzie zawsze przeszukiwana w celu wyszukania obu kolumn, a nie tylko jednej. Moje pytanie brzmi, jak powinien wyglądać mój indeks. Czy istnieje różnica w kolejności tych tabel, czy powinno być więcej opcji, czy cokolwiek innego. Moja docelowa baza danych to Postgres.
add_index(:user_views, [:article_id, :user_id])
Dzięki.
AKTUALIZACJA:
Ponieważ może istnieć tylko jeden wiersz zawierający te same wartości w obu kolumnach (ponieważ wiedząc, czy identyfikator_użytkownika przeczytał article_id), czy powinienem rozważyć opcję: unique? Jeśli się nie mylę, oznacza to, że nie muszę samodzielnie sprawdzać i po prostu wstawiać wstawkę za każdym razem, gdy użytkownik odwiedza artykuł.