2010-01-27 2 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']; 
    } 
} 

Так что мне нужны советы по структуре базы данных и как я могу retrive всех резьбовые комментариев к с исполнением в виде, пожалуйста :)

ответ

6

Я уверен, что вы найдете статью Managing Hierarchical Data in MySQL полезной. Эти две таблицы могут быть легко объединены в один.

+1

+1: Фантастический ресурс. – James

1

Почему бы не присоединиться к комментариям и таблице comment_replies?

затем просто добавьте дополнительное сгенерированное поле, которое показывает, если его комментарий или комментарий_реализм. И выбирать их с, если в Еогеасп как:

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

Также проверьте, если изменения комментарий ID, так что вы можете разделить их.

1

Я бы выбрал модель списка адаптеров по модели вложенного набора, потому что с помощью модели вложенного набора мне пришлось бы построить всю структуру дерева при каждой операции INSERT и DELETE, выполненной в таблице, и если У меня 1000 записей, для одной операции INSERT или DELETE все записи должны быть обновлены, что требует больше времени для выполнения. Моя структура базы данных будет: enter image description here

Кроме того, я написал небольшую резьбовую систему комментариев с PHP MySQL JQuery и AJAX. Взгляните на http://pradipchitrakar.com.np/programming/threaded-comment-system/

 Смежные вопросы

  • Нет связанных вопросов^_^