Скажем, у меня есть три модели:Database дизайн ... отдаленный связанные модели
class Parent < ActiveRecord::Base
has_many :children
end
class Child < ActiveRecord::Base
belongs_to :parent
has_many :grandchildren
end
class Grandchild < ActiveRecord::Base
belongs_to :children
end
Я буду делать много запросов, чтобы найти внук родителей. Является ли наиболее эффективным выполнение множественных объединений, или было бы лучше добавить другое отношение к Parent
в has_many: :grandchildren
и Grandchild
в belongs_to :parent
? Похоже, что это приведет к тому, что модели не будут синхронизированы, хотя в этом конкретном приложении отношения никогда не будут меняться после их установления.
Кроме того, что, если мы говорим о моделях более отдаленно связанных ... скажем, три или четыре соединения?
ОБНОВЛЕНИЕ: Чтобы уточнить, что я моделирую, на самом деле не родители/дети/внуки. Я думал, что более общие имена сделают его более ясными, но я вижу, как эти родовые на самом деле делали его более запутанным. Это больше похоже на то, что у продуктов есть части заказов, и мне нужно найти заказы, относящиеся к компании. Извините за путаницу.
рекурсивная структура, вероятно, проще. – wildplasser