2010-01-27 24 views
0

我不确定如何在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']; 
    } 
} 

所以我需要在数据库结构顶部的唯一的事情,我怎么能在考虑性能retrive的所有线程意见,请:)

回答

1

为什么不加入评论和comment_replies表?

然后只需添加一个额外的生成字段,显示它的评论或comment_reply。并选择他们如果在像这样的foreach:

if($type == 'comment') 
{ 
     //do something with the comment 
} 
elseif($type == 'comment_reply') 
{ 
     //do something with the comment reply 
} 

还检查如果评论id更改,所以你可以分开他们。

1

我会选择邻接列表模型在嵌套集模型,因为有了嵌套集模型,我将不得不建立整个树结构的每个插入和删除操作在表上完成,如果我有1000条记录,对于单个INSERT或DELETE操作,所有记录都需要更新,需要更多时间来执行。我的数据库结构将是: enter image description here

此外我写了一个小型的线程评论系统与PHP的MySQL的jQuery和AJAX。看看http://pradipchitrakar.com.np/programming/threaded-comment-system/