我正在试着为博客做一个评论系统。我已经使用了修改后的预订单遍历系统(使用本指南:http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/)。
不过,我有一些问题。我不认为该指南解释了如何管理不同的博客帖子,并添加了一个不是回复的评论。
我的评论表格如下所示:
+-------------+----------------------+-----+-----+
| comment_id | message | lft | rgt |
auto increment
+-------------+----------------------+-----+-----+这是一个很好的管理方法吗:
我在comments表中添加了名为"blog_post_id“和"root”的列。当我写一篇博客文章时,我会在comments表中添加一个条目,并将blog_post_id设置为true。然后,左边是comment_id,右边是comment_id + 1。
要加载博客帖子的评论,我会找到blog_post_id =x和root = true的lft和rgt,然后选择blog_post_id为x的lft和rgt之间的所有评论...
我刚刚想出了这个方法,所以我非常确定一定有更好的方法。
谢谢
发布于 2009-06-14 18:32:08
添加一个blog_post_id列并将博客帖子本身视为虚拟评论(评论树的根)如何?然后,它可以有多个子级。
使用这种方法,您可以原封不动地使用该文章中的所有算法,但需要注意的是,您将AND blog_post_id == foo添加到所有查询中,并始终忽略根注释(因为它代表博客本身)。
发布于 2009-06-14 20:06:39
你“想出”了一个非常好的方法。这是管理嵌套注释的标准方式。关于这一点和实现的文献也很多。
请看这里的示例实现:http://api.rubyonrails.org/classes/ActiveRecord/Acts/NestedSet/ClassMethods.html
https://stackoverflow.com/questions/993187
复制相似问题