От fine manual:
5.3.5. Внешние ключи
[...]
Поскольку DELETE
из строки из указанной таблицы или UPDATE
из ссылочного столбца потребуется сканирование таблицы ссылающейся строки, соответствующие старое значение, оно часто является хорошей идеей для индексирования ссылочных столбцов. Поскольку это не всегда необходимо, и есть много вариантов, доступных для индексации, объявление ограничения внешнего ключа автоматически не создает индекс для ссылочных столбцов.
Вы - FK ссылаетесь на ПК, поэтому вам, вероятно, не нужно беспокоиться об ОБНОВЛЕНИЯх. Если ваша ссылочная таблица (одна с club_id
) будет большой, и вы ожидаете, что часто удаляете строки club
, тогда какой-то индекс на club_id
должен сделать удаление club
строк быстрее. Если у вас нет индекса на club_id
, попытка удалить строку club
потребует сканирования таблицы в таблице, содержащей club_id
, а сканирование таблиц - не ваш друг.
Так что ответ возможно, это зависит от того, как club
будет использоваться.
Разве FKeys не объявляются автоматически при использовании 'has_many' /' принадлежит_to'? –
@Denis: Нет, Rails не верит в причудливые вещи, такие как база данных FK. –
@muistooshort: ouch ... такие вещи делают меня настолько рад, что я решил не тратить время на то, когда узнал Ruby. –