计算用户评论的回复数量

时间:2011-03-22 17:37:27

标签: php mysql

我有多级评论系统,我将评论存储在mysql数据库表中,包含以下字段:

id
article_id
user_id
date
content
comment_id

其中comment_id是父评论的id。

如何在所有文章的特定日期之后计算用户评论的回复数量? e.g:

- comment1
-- comment1.1
--- comment1.1.1
-- comment1.2
-- comment1.3
--- comment1.3.1

如果用户发布了comment1,我需要查询返回5.如果用户发布了评论1.3 - 返回1.

2 个答案:

答案 0 :(得分:3)

有关一些想法,请参阅Managing Hierarchical Data in MySQL。一种简单的方法是将路径存储在注释树中,就像上面列出的那样,并执行LIKE查询。 E.g:

SELECT COUNT(*) WHERE comment_path LIKE 'comment1.%'

您当然需要comment_path列上的索引,只要%仅在最后使用,就会使用该索引。

答案 1 :(得分:0)

如果可能,您可以将数据架构更改为嵌套集。使用此模式,您可以使用简单的加法/减法计算每个层次结构中的答案。不幸的是,我只懂德语的好教程: - /例如this