Хранение меню и подменю. Подскажите идею.

zarus

Хитрожопый макак
Если вы создаёте dhtml меню, типа как в http://www.ultra-online.ru, то вам действительно придётся сгенерировать 41 запрос.
Зачем куча запросов в таком случае? Можно получить всю таблицу, и построить дерево уже в скрипте. Ищи в Cook-book'e решение от Popoff - отличная фишка для adjacency lists.
 

Royal Flash

-=MaestrO=-
maxru
Да и "корневой элемент", если он 0, а не NULL, заметно упростит задачу. Максимальная вложенность меню для MySQL 4.1 - 61. Для более ранних версий - меньше. Зависит от максимального кол-во допустимых объеденений, если использовать запрос вида:

SELECT IF(t00.id IS NOT NULL, 1, 0) + IF(t01.id IS NOT NULL, 1, 0) + IF(t02.id IS NOT NULL, 1, 0) AS level
t0.id AS "0.id", t1.id AS "1.id", t2.id AS "2.id"
FROM table AS t0 LEFT JOIN table AS t1 ON (t1.parent_id = t0.id) LEFT JOIN table AS t2 ON (t2.parent_id = t1.id)
WHERE t0.parent = 5
(Для выборки всех подменю с уровнем вложенности 3)
 
Сверху