RE: How to represent a tree-structure in a relational database

From: "Opec Kemp \( Ozemail \)" <okemp(at)ozemail(dot)com(dot)au>
To: <josh(at)agliodbs(dot)com>
Cc: <pgsql-sql(at)postgresql(dot)org>
Subject: RE: How to represent a tree-structure in a relational database
Date: 2000-12-14 01:02:20
Message-ID: NEBBIMPHEKPMGOJIFNOFAEMCDAAA.okemp@ozemail.com.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Don't if this will help but there is a really good book that discuss this problem in details.
The book is called "SQL for Smarties" by Joe Celko. It covers lots of advance topics
(tree being one of them). Very good book. Check out on Amazon:

http://www.amazon.com/exec/obidos/ASIN/1558605762/qid=976755796/sr=1-1/106-0241434-0557209

Just me $0.02

> -----Original Message-----
> From: pgsql-sql-owner(at)postgresql(dot)org
> [mailto: Behalf Of Josh Berkus
> Sent: Thursday, December 14, 2000 10:50 AM
> To: sqllist
> Subject: Re: [SQL] How to represent a tree-structure in a relational
> database
>
>
> Stuart,
>
> > I don't think I'd be comfortable with having the node_level column in the
> > table structure. First, because you can derive that value using a function,
> > it's duplicate data. Second, if you decide to take an entire segment of your
> > hierarchy and move it under another node (by changing the value of
> > node_linkup/ParentCategoryID), you'll need to recalculate all of those
> > node_level values. And all the node_level values underneath it.
>
> I can see that. I suppose it depends on the data you're storing. The
> project I was working on tracked grocery inventory for a delivery
> service, and thus each item had a fixed "level" in the heirarcy (Food
> Class, Food Type, Manufacturer, and Item) and thus while items might get
> reassigned *across* the heirarcy, they did not get re-assigned *up and
> down* the heirarcy.
>
> Also, I can't think of a way to represent the tree in pure SQL without
> having the level identifiers (and a fixed number of levels).
>
> > We've done a similar thing for Java. It was ridiculously easy to create a
> > TreeModel wrapped around this data. Almost too easy; it made me feel dirty.
>
> Great. Maybe I'll buy it from you if I ever need to use Java :-)
>
> -Josh
>
> --
> ______AGLIO DATABASE SOLUTIONS___________________________
> Josh Berkus
> Complete information technology josh(at)agliodbs(dot)com
> and data management solutions (415) 436-9166
> for law firms, small businesses fax 436-0137
> and non-profit organizations. pager 338-4078
> San Francisco

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Mathijs Brands 2000-12-14 01:03:56 Re: How to represent a tree-structure in a relational database
Previous Message Joseph Shraibman 2000-12-14 01:00:45 Re: postgres