Я реализую функциональность для отслеживания тех статей, которые пользователь прочитал.
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 всегда будут запрашиваться оба столбца, а не только один. Мой вопрос заключается в том, как должен выглядеть мой индекс. Есть ли разница в порядке этих таблиц, если есть еще какие-то варианты для него или что-то еще. Моя целевая БД - Postgres.
add_index(:user_views, [:article_id, :user_id])
Спасибо.
UPDATE:
Потому что может существовать только одна строка, содержащая одни и те же значения в обоих столбцах (поскольку, зная, что user_id HAS читал article_id), следует ли рассмотреть вариант: unique? Если я не ошибаюсь, это означает, что мне не нужно делать какие-либо проверки самостоятельно и просто делать вставку каждый раз, когда пользователь посещает статью.