когда устанавливать таблицу без первичного ключа в соединительной таблице - PullRequest
2 голосов
/ 23 января 2011

Эй, я использую следующие таблицы. Моя таблица course_enrollments ссылается на user_id и course_id. Оба столбца в совокупности устанавливаются уникальными.

users
course_enrollments
courses

Rails устанавливает первичные ключи по умолчанию. Я читал некоторые статьи людей, которые использовали такие таблицы соединений без ПК. например определив :id => false

Подходит ли этот тип таблицы соединений? как насчет людей, записывающихся или покидающих курсы, или поиска зачислений. Спасибо за ваше время!

Ответы [ 2 ]

2 голосов
/ 23 января 2011

Обычно вы видите :id => false в миграции для таблицы соединений, когда хотите использовать has_and_belongs_to_many, так как Rails действительно не любит находить первичный ключ :id для них.

Из has_and_belongs_to_many документов

Таблица соединения не должна иметь первичный ключ или модель, связанная с это.

1 голос
/ 23 января 2011

Обе колонки вместе заданы уникальными

Поэтому на вашем столе уже есть ключ. Если вам не требуются другие атрибуты, нет необходимости создавать для них другой ключ.

...