Question

J'utilise Ruby (Ruby on Rails) et ont un ensemble imbriqué d'environ 2000 nœuds. Chaque noeud ne peut avoir deux enfants.

Quelle est la meilleure façon de déterminer le nombre de noeuds sont à chaque niveau? Dois-je explorer l'arbre entier à la recherche de frères et soeurs de le faire?

Merci!

Était-ce utile?

La solution 2

En fait, je pensais trouver un moyen de le faire « rapide ». En utilisant le segment de « profondeur d'un sous-arbre » sur cette page ( lien texte ) Je suis vote pour la profondeur à l'aide du SQL donnée avec find_by_sql. J'itérer puis sur les résultats du modèle de retour et compte combien de fois chaque valeur de profondeur se produit. Fonctionne très bien! Merci à tous pour la recherche et pour votre aide!

Autres conseils

Dans ActiveRecord il y a un attribut appelé counter_cache, il est fait spécifiquement pour de tels cas. Consultez compteur Cache colonne screencast par Ryan Bates.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top