Добрый день. у записи в БД может либо быть, либо не быть родителя, если родителя нет, то он сам родитель. короче дерево. пример id param1 param2 id_rod 1 par par 0 2 par1 par1 1 3 par2 par2 2 в итоге нужно вывести всё дерево, т.е. id 3,2 и главного родителя id 1. Что то ничего оптимального в голову не идет =( либо же как можно подобно переструктурировать бд для простоты?
при подобной организации хранения дерева - рекурсия. кстати, мускул 5 версии не поддерживает рекурсии хранимых процедур. довольно много про работу с деревьями описано тут http://www.php.ru/forum/viewtopic.php?t=27758
в принципе построил и получилось собрать дерево IDшников, но если у кого то есть предложения по реструктурированию БД, просьба высказать)
Basters в зависимости от величины дерева можно переложить часть работы на пхп. т.е. вытаскивать всю таблицу структуры, и уже внутри пхп собирать необходимый массив - работает быстрее, но только если дерево имеет не больше 500-1000 узлов. Если узлов много, то имеет смысл подгружать дерево динамически с помощью ajax-а. Либо же закешировать в файловой системе. Если дерево используется при поиске (т.е. найти статью во текущей категории и всех подкатегориях), то возможно стоит посмотреть в сторону Nested Sets либо же организовать ещё одну таблицу связей предок-потомок-уровень, таким образом можно вытаскивать все айдишки потомков, либо всех предков текущего узла всего одним запросом. Данный подход довольно удобен, но тяжело поддаётся модификации при переносе части дерева в другую часть. В большинстве случаев можно обойтись маленьким деревом и генерацией структуры уже в пхп, предварительно вытащив всё дерево одним запросом из базы.