Re: recursing down a tree

From: Fran Fabrizio <ffabrizio(at)mmrd(dot)com>
To: Carl Meyer <mrbz(at)gmx(dot)net>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: recursing down a tree
Date: 2002-07-02 13:07:54
Message-ID: 3D21A5AA.80807@mmrd.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Carl Meyer wrote:

>hi,
>
>say i have a table with something like
>
>id,parent,description
>
>
>
Depending on what your most common types of queries are, you might be
better off with Joe Celko's nested set model (from the book SQL for
Smarties). It would do:

id, left, right, description

where you traverse the tree depth-first and as you pass the left side of
each node you increment a counter (left) and as you pass by it again on
the right you increment it again (right).

This model provides much easier ways of making queries such as "give me
all descendants of id=2" because there's then no recursion (WHERE
child.left between parent.left and parent.right).

I had a table set up exactly as you have described, and when the
recursion proved too costly in terms of db performance, I went to nested
set and we're pleased with the results.

Just another option,
Fran

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Krummenacher, Gabriel 2002-07-02 13:28:28 Re: createdb error
Previous Message Thomas Hyldgaard 2002-07-02 12:59:50 Comparing PostgreSQL and Oracle stability