我不确定如何在PHP和MySQL中创建一个可以一次处理数百条评论的线程评论系统。
这样的事情是我唯一可以提出的事情
$query = execute_query...('SELECT * FROM `comments` WHERE `post` = "1"');
foreach($query as $comment){
$replies = execute_query...('SELECT * FROM `comment_replies` WHERE `comment` = "' . $comment['id'] . '"');
if($replies){
echo $comment['body']; //....
foreach($replies as $reply){ /*....*/ }
}
else{
echo $comment['body'];
}
}
所以我需要有关数据库结构的提示,以及如何在考虑性能的情况下检索所有线程评论,请:)
答案 0 :(得分:6)
我相信你会发现文章Managing Hierarchical Data in MySQL很有帮助。这两个表可以很容易地合并为一个
答案 1 :(得分:1)
为什么不加入评论和comment_replies表?
然后只需添加一个额外的生成字段,显示其是注释还是comment_reply。并使用if中的if选择它们:
if($type == 'comment')
{
//do something with the comment
}
elseif($type == 'comment_reply')
{
//do something with the comment reply
}
同时检查评论ID是否发生变化,以便分开。
答案 2 :(得分:1)
我会选择邻接列表模型而不是嵌套集模型,因为使用嵌套集模型,我必须在表上完成的每个INSERT和DELETE操作上构建整个树结构,如果我有1000个记录,单个INSERT或DELETE操作必须更新所有记录,花费更多时间执行。 我的数据库结构是:
我还用php mysql jquery和ajax写了一个小线程评论系统。看看http://pradipchitrakar.com.np/programming/threaded-comment-system/