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 ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq