Эффективная реализация «категории» дерево? (Баз данных)

Если у меня есть дерево категорий с неопределенным уровнем подкатегорий, возможно ли получить все дерево категорий за один запрос (без каких-либо циклов)?

Это возможный сценарий:

 category_id  parent_id   Name
0           null        Home
1           null        Auto
2           0           Living Room
3           2           Couches
4           2           TV
5           4           Home Theatre
6           5           Cables

Если вы заметили, кабельная линия такова, что:
Главная> Гостиная> Телевизор> Домашний кинотеатр> Кабели

Прямо сейчас я получаю родительскую категорию текущей категории и продолжаю цикл, пока не доберусь до родительской категории, которая имеет нулевую родительскую категорию. Я знаю, что эту часть спрашивали раньше. Однако мне интересно, есть ли лучший способ структурировать эту таблицу, чтобы мне не приходилось выполнять X запросов (или подзапросов)? Я рассмотрел, например, добавление 4-го столбца, называемого родителями, или чего-то такого, что могло бы иметь всю родословную в списке через запятую (например, в этом случае родители будут: 5,4,2,0, Однако это казалось липким и неэффективным (и его легко сломать). Есть ли лучший механизм?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …