| From: | Josh Berkus <josh(at)agliodbs(dot)com> |
|---|---|
| To: | sqllist <pgsql-sql(at)postgresql(dot)org> |
| Subject: | Re: How to represent a tree-structure in a relational database |
| Date: | 2000-12-14 00:49:51 |
| Message-ID: | 3A38192F.EDC76961@agliodbs.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-sql |
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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Mathijs Brands | 2000-12-14 00:51:57 | Re: How to represent a tree-structure in a relational database |
| Previous Message | Josh Berkus | 2000-12-14 00:44:55 | Re: postgres |