2

Ruby (Ruby on Rails) を使用しており、ネストされた約 2000 ノードのセットがあります。各ノードは 2 つの子のみを持つことができます。

各レベルにいくつのノードがあるかを判断する最良の方法は何ですか? これを行うには、兄弟を探してツリー全体をクロールする必要がありますか?

ありがとう!

4

2 に答える 2

1

ActiveRecord には counter_cache という属性があり、このような場合のために特別に作成されています。Ryan Bates によるCounter Cache Columnのスクリーンキャストを確認してください。

于 2009-10-13T05:54:27.557 に答える
0

私は実際にこれを行うための「迅速な」方法を考え出しました。このページ (リンク テキスト) の「サブツリーの深さ」のセグメントを使用して、指定された SQL と find_by_sql を使用して深さをポーリングしています。次に、返されたモデルの結果を繰り返し処理し、各深度値が発生する回数を数えます。よく働く!見てくれて、助けてくれてありがとう!

于 2009-10-13T07:14:15.527 に答える