Re: consultas jerarquicas en postgresql

From: "Marco Antonio" <marcoantoniofrias(at)gmail(dot)com>
To: "Marco Antonio" <marcoantoniofrias(at)gmail(dot)com>, allein(dot)mike(at)gmail(dot)com, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: consultas jerarquicas en postgresql
Date: 2007-11-09 21:20:30
Message-ID: 33e030de0711091320y7201f2eej2067b2113af8c280@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Revisando las entradas en el historial de la lista me tope con esta solución:

4. modelo + pl/pgsql de Hubert Lubaczewski:

La página de la implementación (bueno el idioma es polaco... pero se
entiende la idea):

http://www.depesz.com/various/various-sqltrees-implementation.php

En el tutorial/artículo la idea:

...................... ___sql___
...................../.....................\
.postgresql..............____oracle_____
..........|...................../...............|....................\
......linux........solaris..........linux.........windows
.........................................../..........\
.....................................glibc1...glibc2

el modelo de la db:

CREATE TABLE kategorie (
id serial,
name TEXT,
PRIMARY KEY (id)
);

CREATE TABLE powiazania (
parent_id integer NOT NULL references kategorie (id),
child_id integer NOT NULL references kategorie (id),
depth integer
);

algunos datos insertados:

SELECT * FROM kategorie;
id | name
----+---------
1 | sql
2 | oracle
3 | solaris
4 | windows
(4 rows)

SELECT * FROM powiazania;
parent_id | child_id | depth
-----------+----------+-------
1 | 1 | 0
2 | 2 | 0
1 | 2 | 1
3 | 3 | 0
2 | 3 | 1
1 | 3 | 2
4 | 4 | 0
2 | 4 | 1
1 | 4 | 2
(9 rows)

el resultado esperado, después de varias funciones en pl/pgsql:

SELECT id, repeat (' ', getitemlevel(id)) || '+- ' || name FROM
kategorie ORDER BY createtreepath(id);
id | ?column?
----+-----------------
1 | +- sql
8 | +- postgresql
9 | +- linux
2 | +- oracle
3 | +- solaris
5 | +- linux
6 | +- glibc1
7 | +- glibc2
4 | +- windows
(9 rows)

--
Saludos y abrazos...

Marco Antonio Frias Butron
Slackware Linux User
Linux Registered User #356229 - http://counter.li.org/
http://marcoantoniofrias.uni.cc

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message WILLIAM PARRA 2007-11-09 23:12:54 Actualizacion en Cascada de llave primaria
Previous Message Espartano 2007-11-09 20:52:48 Re: Ofreciendo el uso de PostgreSQL en tierra de MySQL (OFFTOPIC)