pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Achilleus Mantzios <achill@matrix.gatewaynet.com>
To: Jean-Paul Argudo <jean-paul@argudo.org>
Cc: Daniel Caune <daniel.caune@ubisoft.com>
Cc: Michael Fuhr <mike@fuhr.org>
Cc: lucius.seneca@gmail.com
Cc: postgresql sql list <pgsql-sql@postgresql.org>
Subject: Re: connectby documentation
Date: Tue, 14 Mar 2006 15:30:11 +0200 (EET)
Message-ID: <Pine.LNX.4.44.0603141503050.16819-100000@matrix.gatewaynet.com> (raw)
In-Reply-To: <4416ACE1.5040207@argudo.org>

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




view thread (14+ messages)

Message-ID: <Pine.LNX.4.44.0603141503050.16819-100000@matrix.gatewaynet.com>
Permalink:  ../Pine.LNX.4.44.0603141503050.16819-100000@matrix.gatewaynet.com/
Also on:    postgresql.org/message-id/Pine.LNX.4.44.0603141503050.16819-100000@matrix.gatewaynet.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: achill@matrix.gatewaynet.com, jean-paul@argudo.org, daniel.caune@ubisoft.com, mike@fuhr.org, lucius.seneca@gmail.com
  Subject: Re: connectby documentation
  In-Reply-To: <Pine.LNX.4.44.0603141503050.16819-100000@matrix.gatewaynet.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox