我正在使用 Ruby(Ruby on Rails)并且有一组大约 2000 个节点的嵌套。每个节点只能有两个孩子。
确定每个级别中有多少个节点的最佳方法是什么?我是否必须爬过整棵树来寻找兄弟姐妹才能做到这一点?
谢谢!
我正在使用 Ruby(Ruby on Rails)并且有一组大约 2000 个节点的嵌套。每个节点只能有两个孩子。
确定每个级别中有多少个节点的最佳方法是什么?我是否必须爬过整棵树来寻找兄弟姐妹才能做到这一点?
谢谢!
在 ActiveRecord 中有一个名为 counter_cache 的属性,它专门针对这种情况。检查Ryan Bates 的Counter Cache Column截屏视频。
我实际上想出了一个“快速”的方法来做到这一点。使用此页面(链接文本)上“子树的深度”中的段,我使用给定的 SQL 和 find_by_sql 轮询深度。然后我遍历返回的模型结果并计算每个深度值出现的次数。效果很好!感谢大家的寻找和帮助!