У меня есть приложение на Ruby on Rails, в котором код напрямую обращается к таблицам соединения «многие ко многим».Это делает изменение некоторого кода очень трудным, так как он обходит обычные ассоциации и методы, созданные с помощью отношений: has_many и: has_many: посредством.
Мой вопрос просто, является ли это приемлемой вещью, которую следует делать или следуетэтого следует избегать?
По моему мнению, с точки зрения базы данных, таблицы объединения не существуют в логическом представлении.Таким образом, не должно быть оснований для прямого доступа к ним.Нужно просто игнорировать, что они даже существуют, и позволить фреймворку позаботиться о них.
Что думают другие?
Если быть более точным, мне интересно, должно ли когда-либо появляться следующее в коде:
Person { name }
Group { name }
PersonGroup { person_id, group_id, membership_state }
PersonGroup.find(:all, :conditions => {:membership_state => 'pending'} }
Я думаю, что вместо использования таблицы объединения следует вместо этого направить запрос в группу и найти всех ожидающих участников таким образом.