ActiveRecord, что означает "index: true"?

Я пишу миграцию с внешним ключом. Посмотрев на код моих коллег, я вижу, что он добавил строку: t.reference :tablename, index: true

Часть t.reference имеет смысл, но я не знаю, что означает index: true. Может ли кто-нибудь сказать мне? Я не смог найти это в документах.

Примечание. Это не дубликат: Rails ActiveRecord:: Миграция, в чем разница между индексом: true и add_index? Который только различает эти два, но doesn Не объясняйте, что они делают.

Ответ 1

index: true добавляет индекс базы данных в ссылочный столбец. Например, при создании таблицы продуктов:

create_table :products do |t|
  t.reference :users, index: true
end

Это создаст столбец user_id в таблице products. Он также создаст неидеальный индекс в столбце user_id с именем index_products_on_user_id.

Ответ 2

Хорошо, когда вы создаете эту вещь add_reference, которую вы говорите, для рельсов, чтобы добавить user_id в "таблицу продуктов". Я думаю, что идентификатор полезен для соединения таблиц разных.