Построить дерево

blackrook
Дата: 02.11.2004 16:07:54
Сорри если это было, но я не нашёл

Есть табличка

id name pid
------------------
1 | name1 | 1
2 | name2 | 1
3 | name3 | 2

pid=parent id
Как на plpgsql проще посторить дерево? В Oracle для этого есть специальный синтаксис, может и здесь есть что-то подобное?

Заранее благодарен
MaximZ
Дата: 02.11.2004 19:22:53
Можете написать функцию которая будет ходить по этой табличке и строить дерево. Я такую делал, это не сложно.

Или как вариант идем на сайт типа:
http://]|>doc.woweb.ru/index.htm/id/1029882762/d/1

статья стандартная. На сегодня считается что это самый удобный способ работы с деревьями.
Хотя лияно на мой взгляд самый безотказный это как вы описали. Но к сожалению работа с ним очень сложна и даже простая выборка занимает во много больше ресурсов чем в вышоописанной статье.
LeXa NalBat
Дата: 09.11.2004 11:17:43
Попробуйте патч иерархических запросов. И не придется использовать plpgsql - лишь sql.
mwolf
Дата: 10.11.2004 12:32:01
LeXa NalBat
Попробуйте патч иерархических запросов. И не придется использовать plpgsql - лишь sql.

А что это за штука такая?
Я был на сайте, но так и не понял о чём идёт речь. :-(
LeXa NalBat
Дата: 11.11.2004 10:30:59
mwolf
А что это за штука такая?
Я был на сайте, но так и не понял о чём идёт речь. :-(
Используя hier-Pg можно из таблицы, которую привел blackrook, делать выборку "SELECT * FROM test CONNECT BY PRIOR id = pid START WITH id=1", возвращающую дерево.
mwolf
Дата: 11.11.2004 18:00:58
LeXa NalBat
mwolf
А что это за штука такая?
Я был на сайте, но так и не понял о чём идёт речь. :-(
Используя hier-Pg можно из таблицы, которую привел blackrook, делать выборку "SELECT * FROM test CONNECT BY PRIOR id = pid START WITH id=1", возвращающую дерево.

А документация к этой штуке имеется?
centur
Дата: 12.11.2004 08:39:51
используйте оракловую , нам помогло. Только предупреждаю сразу - вещь СЫРАЯ, на больших объемах и сложных таблицах может падать, увлекая за собой ядро постгреса...
LeXa NalBat
Дата: 12.11.2004 11:30:20
mwolf
А документация к этой штуке имеется?
README