has_and_belongs_to_many в направляющих

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

22
задан Jason Punyon 18 March 2009 в 13:16
поделиться

3 ответа

has_and_belongs_to_many предназначен для простых many-many отношений.

has_many: через, с другой стороны, предназначен для косвенных связей "один ко многим" или many-many отношений со свойствами.

, Если Вы только ищете простые many-many отношения, я не вижу причины не использовать has_and_belongs_to_many.

Пример many-many отношения:

Пользователь принадлежит нулю или большему количеству групп, и у группы есть нуль или больше участников (пользователи).

Пример many-many отношения со свойствами:

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

, Например, Alice могла бы быть Администратором в Группе A и Модератором в Группе B. Можно держать это свойство в объединяющей таблице.

Пример косвенная связь "один ко многим":

категория А имеет нуль или больше подкатегорий, и каждая подкатегория имеет нуль или больше объектов.

категория А поэтому имеет нуль или больше объектов через его подкатегории.

Рассматривают эти категории:

Еда в †’ Фрукты, Овощи
Фрукты в †’ Apple, Оранжевая, и т.д.
Овощи в †’ Морковь, Сельдерей, и т.д.

поэтому:

Еда в †’ Apple, Оранжевая, Морковь, Сельдерей, и т.д.

29
ответ дан Can Berk Güder 29 November 2019 в 04:54
поделиться

Нет ничего неправильно с использованием has_and_belongs_to_many, если Вы не требуете модели соединения. Я только что использовал его сам на недавнем проекте.

3
ответ дан John Topley 29 November 2019 в 04:54
поделиться

Я никогда не использовал бы HABTM не ни из-за какой озабоченности по поводу элегантности, но потому что я могу всегда предполагать желать добавить данные к отношениям в будущем, даже если я не вижу точку теперь. Быть ленивым я хотел бы иметь возможность просто добавить столбцы к соединению вместо того, чтобы иметь необходимость переделать отношения и затем добавить столбцы.

3
ответ дан srboisvert 29 November 2019 в 04:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: