Может ли кто-нибудь объяснить объяснения за и против между has_many: through и has_and_belongs_to_many?использует has_and_belongs_to_many для моделей - плохая идея?
1
A
ответ
6
Нет ничего плохого в использовании habtm per se. Причина, по которой многие люди не используют такую ассоциацию, заключается в том, что они используют has_many: вместо этого. Зачем? Потому что он более универсален. В то время как HABTM «скрывает» промежуточную таблицу, при использовании has_many: через посредника человек - это ресурс сам по себе - что обычно хорошо (если ни для чего, вы можете установить временную привязку отношений). Вы столкнетесь со многими ситуациями, когда вам нужно будет добавить какое-то поведение или атрибуты к таким отношениям (при разработке системы в ресурсо-ориентированном режиме).
Смежные вопросы
- 1. Использует закрытие для эмуляции инкапсуляции плохая идея?
- 2. Использует наследование, как эта плохая идея
- 3. Использует $ .get, чтобы манипулировать данными, плохая идея?
- 4. Использует PHP с полноэкранным фреймворком для проекта highload - плохая идея?
- 5. Использует OAuth2 для аутентификации вместо авторизации плохая идея?
- 6. Использует сериализацию для хранения данных в одном файле, плохая идея?
- 7. TFS для Java - плохая идея?
- 8. ReaderWriterLockSection: Плохая идея?
- 9. Когда многопоточность - плохая идея?
- 10. Бесконечный запрос ajax, хорошая идея/плохая идея?
- 11. использует карту вместо цикла for - плохая идея в JS?
- 12. Хорошая идея/Плохая идея (/ другие идеи?)
- 13. Разделите веб-приложение базы данных - хорошая идея или плохая идея?
- 14. несколько SqlConnections для одной функции: плохая идея?
- 15. Кэширование видео для webapp - плохая идея?
- 16. Это плохая идея для подкласса java.io.File?
- 17. Почему функция агрегации плохая идея для RESTful?
- 18. Почему использование записи для OpenShift - плохая идея?
- 19. Thread.sleep Плохая идея для весенних тестов интеграции?
- 20. Композитный NSOperation. Это плохая идея?
- 21. Переопределение ApplicationRecord инициализация, плохая идея?
- 22. NUnit глобальная инициализация - плохая идея?
- 23. Сохранение в деструкторе - плохая идея?
- 24. Возвращение после слияния, плохая идея?
- 25. Конфигурация в ведре S3: плохая идея?
- 26. Синглтон с делегатом: хорошая идея или плохая?
- 27. Псевдо первичные ключи в MongoDB - плохая идея?
- 28. Использует токены-носители SAML для аутентификации пользователей для бэкэнд-услуг - плохая идея?
- 29. Неужели плохая практика или плохая идея иметь «общий» профиль обеспечения?
- 30. Использует * это хорошая идея?
Я начинаю видеть значение этого сам ... добавленная гибкость действительно выгодна по мере изменения спецификации. Любопытно, однако: если бы у меня были отношения habtm между Пользователями и Пищами, но теперь мне нужна таблица-посредник, что бы я назвал промежуточной таблицей? Это целый новый ресурс, называемый meal_user или что-то в этом роде? – dmonopoly
Я понимаю, что это более старый вопрос, но обычно вы называете это чем-то другим с атрибутами и целью их хранения, так как теперь это новый ресурс. Например, если бы это был рейтинг еды из 5, который мог бы содержать ресурс «рейтинг». –