计算嵌套集中某个级别中的节点数

时间:2009-10-13 05:36:26

标签: sql ruby-on-rails ruby nested-sets

我正在使用Ruby(Ruby on Rails)并拥有一组约2000个节点的嵌套。每个节点只能有两个孩子。

确定每个级别中有多少个节点的最佳方法是什么?我是否必须抓住整棵树寻找兄弟姐妹才能做到这一点?

谢谢!

2 个答案:

答案 0 :(得分:1)

在ActiveRecord中有一个名为counter_cache的属性,它专门针对此类情况而完成。查看Ryan Bates的Counter Cache Column截屏视频。

答案 1 :(得分:0)

我实际上想出了一个“快速”的方法来做到这一点。使用此页面上的“子树的深度”中的段(link text)我使用给定的SQL与find_by_sql轮询深度。然后我迭代返回的模型结果并计算每个深度值出现的次数。效果很好!感谢所有人的期待和帮助!