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 в "таблицу продуктов". Я думаю, что идентификатор полезен для соединения таблиц разных.