Проблема, которую я хочу решить, связана с Django, но она тесно связана с тем, как я запрашиваю в базе данных.
У меня есть модель / таблица Category, в которой есть ForeignKey:
| id | name | parent_id
| 1 | name1 | Null
| 2 | name2 | Null
| 3 | name3 | 1
| 4 | name4 | 1
| 5 | name5 | 3
| 6 | name6 | 3
| 7 | name7 | 5
Родительская категория может иметь несколько подкатегорий без ограничения по глубине;
Также у меня есть модель / таблица Продукт, которая имеет отношение ManytoMany к категории.Продукт может иметь несколько категорий, а категория может иметь несколько продуктов
Промежуточная таблица
| id | product_id | category_id
| 1 | 1 | 1
| 2 | 1 | 2
| 3 | 2 | 1
| 4 | 2 | 3
| 5 | 3 | 5
| 6 | 3 | 4
| 7 | 3 | 7
Таблица товаров
| id | name
| 1 | name1
| 2 | name2
| 3 | name3
Что мне нужно:
1) для хлебной крошки получить первый набор категорий, соответствующих продукту
Название продукта 3: идентификатор категории 1 -> идентификатор категории 3 -> идентификатор категории 7
2) запускиз категории получить все продукты в этой категории и ее подкатегориях
Я хочу получить их в нескольких запросах, избегая называть базу данных рекурсивной от дочерней к родительской категории