Skip site navigation (1) Skip section navigation (2)

Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql

From: Javier Chávez B(dot) <jchavezb(at)gmail(dot)com>
To: rperezm(at)uci(dot)cu
Cc: Jose Luis Balle <joseluisballe(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql
Date: 2009-10-28 14:55:39
Message-ID: ded64bba0910280755j10ff8c7fu1132c3607a9a3717@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
2009/10/28 ReynierPM <rperezm(at)uci(dot)cu>

> Jose Luis Balle wrote:
>
>> Lo Prometido.
>> La tabla:
>> CREATE TABLE items
>> (
>>  id serial NOT NULL,
>>  padre bigint NOT NULL,
>>  nombre character varying(300) NOT NULL,
>>  descripcion text,
>>  CONSTRAINT items_pkey PRIMARY KEY (id)
>> )
>> WITH (OIDS=TRUE);
>>
>> La función, en realidad como recursiva, tantas veces como sea
>> necesario hasta llegar a la última hoja -1  que es la hoja en sí, el
>> registro.
>> CREATE OR REPLACE FUNCTION getancestor(este character varying, item
>> integer)
>>  RETURNS character varying AS
>> $BODY$
>> DECLARE
>> retorno integer;
>> BEGIN
>> SELECT padre INTO retorno FROM items WHERE id=item;
>> IF  NOT FOUND OR retorno=0 THEN
>>        return este;
>> ELSE
>>        return getancestor(retorno::varchar||'.'||este,retorno);
>> END IF;
>> END;
>> $BODY$
>>  LANGUAGE 'plpgsql' STABLE
>>  COST 100;
>> ALTER FUNCTION getancestor(character varying, integer) OWNER TO user;
>>
>> Y no anda tan mal, 391ms sobre 1678 filas, lo que en realidad me toma
>> mucho tiempo es una vista que me sumariza cada hoja del árbol
>> Seq Scan on items  (cost=0.00..480.28 rows=1678 width=159)
>>
>> En fin, no se si es lo mejor pero por ahora me sirve.
>> Voy a investigar tu recomendación Alvaro, gracias.
>> Saludos
>>
>> El día 27 de octubre de 2009 23:00, Alvaro Herrera
>> <alvherre(at)alvh(dot)no-ip(dot)org> escribió:
>>
>>
>>
>>
> Gracias por la respuesta Jose Luis, casi lo he comprendido todo, solo me
> resta la parte de darme cabezazos intentando realizarlo. Ahora, va sonar un
> poco mal en este ámbito y quizás me quieran matar, pero me han pedido que no
> sea PostgreSQL sino que sea MySQL ¿alguna idea al respecto? ¿es el mismo
> basamento?
>
> --
> Saludos
> ReynierPM
>

Obviando el tema SGBD esta implementacion es independiente del motor me
entiendes??? lo importante es el concepto o idea , una tabla con id's
relacionados entre ellos..

Me hago entender?

slds.

JC


-- 
Cumprimentos
jchavez
linux User #397972 on http://counter.li.org/

Jonathan Swift<http://www.brainyquote.com/quotes/authors/j/jonathan_swift.html>
- "May you live every day of your life."

In response to

pgsql-es-ayuda by date

Next:From: Rodriguez FernandoDate: 2009-10-28 15:19:17
Subject: Re: Log de Postgres a una BD
Previous:From: ReynierPMDate: 2009-10-28 14:48:50
Subject: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] SOT: Ayuda con diseño de BD

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group