Re: using a self referencing table

Поиск
Список
Период
Сортировка
От andrew
Тема Re: using a self referencing table
Дата
Msg-id 3974F3F7.1AABD0C7@TheSoftwareSmith.Com.Au
обсуждение исходный текст
Ответ на using a self referencing table  (drfrog@smartt.com)
Список pgsql-sql
drfrog@smartt.com wrote:

> i have a table with this structure
>
> name (varchar)|category id (int4)|parent category id (int4)|leaf node
> (bool)
>
> im trying to make a perl script that should tree the info
>
> parent cat
>         subcat
>                 subcat2
>                 subcat2
>         subcat
>                 subcat2
> ...
>
> but im having troubles wrapping my head around this
>
> im using the Pg modules to access postgres
>
> if anyone has any suggestions please lemme know thanks!

The trick is to be able to sort all the elements of the hierarchy so
that they come out in the right order, that is, grouped by parent, and
then indent them.

You can do this with two extra redundant fields, clevel int and csort
text. Every time you insert a node in the tree, include the calculated
level of the node (i.e. clevel = parent->clevel + 1) and a string which
ensures that the children of a given node are grouped together (i.e.
csort = parent->csort + category id::text). Probably best to left pad
the category id with an appropriate number of zeroes for this
calculation.

When you retrieve the nodes, order by csort, and convert clevel into the
appropriate number of indents.




В списке pgsql-sql по дате отправления:

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: Database authentication and configuration
Следующее
От: Thomas Lockhart
Дата:
Сообщение: Re: Median