1) Вы имеете в виду при использовании генератора? Вообще говоря, вы должны генерировать миграции, а не использовать генератор для всей модели/леса. И тогда нет, внешний ключ не создается автоматически, только если вы его укажете.
2) add_index будет пригождаться для столбцов на больших таблицах, к которым необходимо обратиться к вашей базе данных быстро. Допустим, у вас есть таблица users
с столбцом email
, который должен быть уникальным, но не проиндексирован. И ваш сервис растет, теперь у вас миллионы пользователей, и вам нужно пойти User.find_by_email "[email protected]"
. Без индекса это займет некоторое время. С индексом это будет быстро. Именно тогда вам пригодится индекс.
3) Действительно зависит от вашей базы данных afaik. Не то, что повлияет на ваше ежедневное имхо (хотя, если у вас есть определенный механизм базы данных, вы наверняка узнаете). Вот информация о MySQL прямо из источника: https://dev.mysql.com/doc/refman/5.5/en/column-indexes.html
Так рельсы генерируют модель, а затем записывают миграцию, лучше практиковать? Также, я думаю, я понял это. Поэтому, когда я использую метод t.references, я создаю внешний ключ? – PudparK
нет - вам не нужно генерировать модель. Создайте миграцию, напишите модель. И 'index: true' в рамках миграции будет отмечать индекс col как индекс, хотя у вас есть способы добавить индекс после факта. – ezuk
Это очищает кучу. Большое спасибо! – PudparK