lointainement Disons que j'ai trois modèles:conception de base de données ... modèles liés
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
Je vais faire beaucoup de requêtes pour trouver les petits-enfants de parents. Est-il plus efficace de faire les jointures multiples, ou serait-il préférable d'ajouter une autre relation à Parent
à has_many: :grandchildren
et Grandchild
à belongs_to :parent
? Il semble que cela entraînerait une désynchronisation des modèles, bien que dans cette application particulière, les relations ne changeraient jamais une fois établies. De plus, et si nous parlions de modèles plus éloignés ... disons trois ou quatre jointures de suite? MISE À JOUR: Pour clarifier, ce que je modélise n'est pas vraiment les parents/enfants/petits-enfants. Je pensais que des noms plus génériques le rendraient plus clair, mais je peux voir comment ces noms génériques le rendaient plus confus. C'est plus comme si l'entreprise a des pièces a des commandes, et j'ai besoin de trouver les commandes liées à une entreprise. Désolé pour la confusion.
Une structure récursive est probablement plus facile. – wildplasser