Индекс по нескольким столбцам в Ruby on Rails

Я реализую функцию, позволяющую отслеживать, какие статьи прочитал пользователь.

  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])

Спасибо.

ОБНОВЛЕНИЕ:
Мой вопрос в том, как должен выглядеть мой индекс. Есть ли разница в порядке этих таблиц, должны ли быть какие-то дополнительные опции или что-то еще? Моя целевая БД - Postgres.

add_index(:user_views, [:article_id, :user_id])

Спасибо.

ОБНОВЛЕНИЕ:
Мой вопрос в том, как должен выглядеть мой индекс. Есть ли разница в порядке этих таблиц, должны ли быть какие-то дополнительные параметры или что-то еще. Моя целевая БД - Postgres.

add_index(:user_views, [:article_id, :user_id])

Спасибо.

ОБНОВЛЕНИЕ:
Поскольку может существовать только одна строка, содержащая одинаковые значения в обоих столбцах (поскольку, зная, что user_id читал article_id), следует ли мне учитывать параметр: unique? Если я не ошибаюсь, это означает, что мне не нужно делать никаких проверок самостоятельно и просто делать вставку каждый раз, когда пользователь посещает статью.

89
задан anothermh 2 November 2018 в 04:55
поделиться