Обратный ход по дереву

1. Женек (18.04.2011 / 09:40)
у записи в БД может либо быть, либо не быть родителя, если родителя нет, то он сам родитель.

пример

id param1 param2 id_rod
1 par par
2 par1 par1 1
3 par2 par2 2
в итоге нужно вывести всё дерево, т.е. id 3,2 и главного родителя id 1.

Что то ничего оптимального в голову не идет =(

2. KOZZ (18.04.2011 / 09:50)
при такой структуре только ресурсоемким циклом можно все это вывести.

3. Женек (18.04.2011 / 09:53)
2. Укуренная Панда, а какую структуру ты предложить можешь в данном случае?

4. KOZZ (18.04.2011 / 10:06)
3. Basters, я сам сейчас перед выбором, для сайта своего сейчас выбираю самую оптимальную, читаю много по теме, тесты всякие там.
ganjar рекоммендует nested sets (http://www.getinfo.ru/article610.html ), но как - то она мне не очень нравится.
буду думать

5. Женек (18.04.2011 / 10:32)
что то сообразил
$query = pg_query('SELECT * FROM kross WHERE id=2');
$result = pg_fetch_assoc($query);

		while($result[id_parant]!=0)
		{
			$id_arr[] = $result[id_parant];
    		$query = pg_query('SELECT * FROM kross WHERE id='.$result[id_parant]);
			$result = pg_fetch_assoc($query);

	    }

вроди получилось собрать все верхние id, если у кого то есть решение по более лучшей структуре БД или лучшему запросу, просьба подсказать, отписать)

URL: https://visavi.net/topics/20826