Всем привет!
Появилась необходимость реализовать древовидные комментарии на сайте. Решил воспользоваться ENestedSetBehavior.
Вещь безусловно отличная, но не могу решить проблему с выводом всех комментариев. Получается слишком много запросов.
Структура такая:
Комментарий №1
-Ответ №1 на комментарий №1
--Ответ №1 на ответ №1 на комментарий №1
--Ответ №2 на ответ №1 на комментарий №1
-Ответ №2 на комментарий №1
Комментарий №2
Первоначальный запрос -
$comments = Comment::model()->roots()->findAll('publication_id=:pub_id',array(':pub_id'=>$publication->id);
Далее по идее для каждого комментария надо найти ноды - вызывать $comment->descendants (тут мы получим все дочерние комментарии).
Получается что на странице с комментариями кол-во запросов будет зависеть от кол-ва корневых комментариев…
а если к новости более 500 комментариев? 500 запросов к базе?..
Кто-нить решал проблему с обходом деревьев в yii?