2016-12-06 3 views
0

У меня есть блог с изображениями (похожий на 9gag), и я хочу настроить систему комментариев с потоком. Я понял, как идти, это иметь закрывающий стол, поэтому я его строю.Резьбовая система комментариев в PHP для блога изображений

Мой вопрос: что такое SQL-запрос, чтобы получить дерево комментариев в порядке (и избегать вложенного запроса SELECT, который влияет на perf)?

Комментарии Таблица:

image_id 
comment_id 
comment_text 
comment_date 
comment_parent_id 

Comments_tree Таблица:

ancestor 
descendant 
depth 
image_id 

ответ

1

Прежде всего, я думаю, что он таблица не правильно нормировать я думаю, вы должны использовать comment_id в качестве первичного ключа.

И на ваш вопрос ist не запрос, который трудно напечатать на PHP.

Вы можете просто выбрать все, где comment_parent_id равно нулю:

SELECT comment_text FROM comments_table WHERE comment_parent_id IS NULL ORDER BY comment_date DESC; 

Ist теперь сортируются по имени и для следующего запроса просто использовать идентификатор родительского комментария:

SELECT comment_text FROM comments_table WHERE comment_parent_id = $parentCommentId ORDER BY comment_date DESC; 

Вы можете использовать переменная PHP $parentCommentId для сохранения идентификатора родительского комментария.

После всего этого вам просто нужно вывести его правильно!