O Jean-Paul Argudo έγραψε στις Mar 14, 2006 :
> Daniel Caune a ιcrit :
> > Wow, that was the quest for the Holy Grail! :-)
>
> Yes I understand. That kind of documentation for a
> contrib-addon-whatever for PostgreSQL can be tricky sometimes to find..
>
>
> I just jump on that thread to place a reminder for all those wanting to
> implement trees in databases, just in case they are still thinking about
> howto do that.
>
> I wroted an article on that topic (in french only sorry :
> http://www.postgresqlfr.org/?q=node/142), where I compare id/parent_id,
> nested loops and Miguel Sofer's method.
>
> This method is explained on OpenACS forums (in english)
>
> http://openacs.org/forums/message-view?message_id=18365
>
> The original work of Miguel Sofer (with a PostgreSQL implementation as
> an example) can be found here:
>
> http://www.utdt.edu/~mig/sql-trees/
>
> Be sure to download the tar.gz. on the like "here"... and read his draft.
>
> I'm really convinced this method is the best so far. I used it in 3
> different projects where I had to implement big trees structures on a
> table. They all still work with no problem of any kind.
I agree, this genealogical approach is i think the most
intuitive/efficient, however this depends on the nature
of the intented operation types.
One implementation of this (i think) is the ltree contrib module.
Haven't worked with this tho.
What i actually did for my ultra demanding task (modeling inventory
maintenance of 709772 machinery items/parts etc... of ~ 40 vessels), was
smth of the type
defid | integer | not null default nextval('public.machdefs_defid_seq'::text)
parents | integer[] |
description | text |
machtypeid | integer
..........
where parents hold the path from the item's direct parent to its root
ancestor,
and tree queries are done with a help of a intarray index on parents
"machdefs_parents" gist (parents gist__intbig_ops)
>
> Just to let you know in case you missed that ;-)
>
> My 2 ’
>
> --
> Jean-Paul Argudo
> www.Argudo.org
> www.PostgreSQLFr.org
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Have you searched our list archives?
>
> http://archives.postgresql.org
>
--
-Achilleus