线程评论系统嵌套集 - 多个根?

时间:2009-11-26 08:48:36

标签: nested-sets

我正在为主题实现一个线程评论系统,即有一个主题,然后对每个主题进行线程评论。

嵌套集'似乎'就像流行的方式,但我应该如何实现每个线程的根?例如:

  • 评论可能是一个庞大的嵌套集。我可能错了,但似乎它会像一棵树一样慢。

  • 评论可以为每个主题设置一个根线程。但是,似乎我必须为每个主题制作一个空白的根,有空白根似乎很奇怪。

  • 每个第一级评论都可以是根。这消除了空白根,但似乎会有大量的根线程,并且说要呈现一个包含50个第一级通知的页面,我将不得不进行50次查询:S。

我在这里遗漏了什么,有更好的方法吗?我倾向于空白的根,但它看起来不太正确

感谢。

1 个答案:

答案 0 :(得分:1)

我认为你通常在评论表中有一个单独的外键用于'所有者主题',而不是在嵌套集结构中隐藏该信息。 IMO左/右对只应在所有者上下文中指定嵌套/排序。

然后,如果您有单个根或多根嵌套集结构,则无关紧要。 (FWIW,我使用多根。)你当然可以在一个查询中获取一个主题的所有评论。