Набор вложенных доктрин против списка смежности - PullRequest
1 голос
/ 12 марта 2011

Мне нужно отобразить дерево категорий по уровням (все элементы дерева на каждом уровне).

Root
Cat1 (parent_id) Cat2 (parent_id) ...
Subcat1 (parent_id) Subcat2 (parent_id) Subcat3 (parent_id) ...

Я пытался реализовать его с помощью структуры Nested Set, но столкнулся с проблемой: нелегкий способ получить идентификатор узла родителя (без отдельного запроса к базе данных). Должен ли я использовать список смежности вместо этого?

Цель состоит в том, чтобы сделать отображение максимально быстрым, в идеале одним запросом к базе данных.

1 Ответ

1 голос
/ 12 марта 2011

Читать эта статья о вложенном множестве или списке смежности . Вы увидите, что Nested Set облегчает написание запросов faaaaar. Также прочтите этот § о методе иерархии вложенных множеств , и вы узнаете, как получить несколько объектов доктрины в иерархической форме с помощью одного запроса .

...