2010-01-27 7 views
0

PHP와 MySQL에서 한 번에 수백 개의 주석을 처리 할 수있는 스레드 된 주석 시스템을 만드는 방법을 모르겠습니다. 이 같은Threaded Comments를위한 확장 가능한 솔루션

뭔가 내가

$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']; 
    } 
} 

그래서 내가 데이터베이스 구조에 대한 도움말이 필요

가지고 올 수있는 유일한 것은 내가 마음의 성능과 모든 스레드 의견을 PIN이 할 수있는 방법

답변

1
을 :)하십시오

댓글 및 comment_replies 테이블을 가입하지 않으시겠습니까?

그런 다음 추가 된 생성 필드를 추가하여 해당 주석 또는 comment_reply가 있는지 확인하십시오. 그리고 foreach에서 if를 사용하여 다음과 같이 선택하십시오.

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

또한 사용자가 분리 할 수 ​​있도록 주석 ID가 변경되는지 확인하십시오.

1

중첩 세트 모델을 통해 인접 목록 모델을 선택합니다. 테이블에 대해 수행 된 모든 INSERT 및 DELETE 작업에서 전체 트리 구조를 작성해야하므로 if 하나의 INSERT 또는 DELETE 작업에 대해 1000 개의 레코드가 있으므로 모든 레코드를 업데이트해야 업데이트 할 수 있습니다. 내 데이터베이스 구조는 다음과 같습니다 enter image description here

또한 나는 PHP는 MySQL의 JQuery와 및 아약스와 작은 나사 코멘트 시스템을 작성했습니다. 좀 봐 http://pradipchitrakar.com.np/programming/threaded-comment-system/