У меня есть три таблицы: Категория, Подкатегория, Подкатегория.
Мне нужно составить дерево категорий со многими отношениями, что означает:
-Category
--Subcategory
--Subcategory
---Subsubcategory
---Subsubcategory
--Subcategory
-Category
-Category
Я сделал три модели в виде таблиц; Теперь мне нужно собрать все категории с подкатегориями подкатегорий.
Как это сделать? Заранее спасибо!






Вы уверены, что у вас будет всего 3 уровня дерева категорий?
В таких случаях я использую одну таблицу с дополнительным родительским идентификатором, поэтому, если родительский идентификатор равен 0, что означает, что это корень дерева, дочерний элемент в дереве, такой как ваша подкатегория, будет содержать 1 для родительский идентификатор и так далее. Так что-то вроде этого:
1. Category (parent 0)
3. Subcategory (parent 1)
4. Subsubcategory (parent 3)
2. Category (parent 0)
затем вы можете рекурсивно отображать их или использовать.
Это только одна модель (таблица) под названием Категория, и в приведенном выше примере используются их имена.
Создание для этого трех таблиц выглядит довольно неудачным дизайном. Создайте единую таблицу со ссылкой на категорию верхнего уровня, где категории верхнего уровня имеют NULL родительский элемент.