Re: manejo de arrays

From: "Ruben Guinez" <rubenvive(at)gmail(dot)com>
To: "javier calderon" <kivurkian(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: manejo de arrays
Date: 2007-04-19 05:36:18
Message-ID: dbb3157b0704182236u2cdeb301mf2e04b1d527da35b@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Tal vez, y mirando rápidamente el problema, me inclinaría por crear
una tabla de atributos: nombre - valor, algo así como

rg_atributos (
idatributo serial,
idproforma int,
atributo text,
valor text
constraint PK_RG_ATRIBUTO primary key (idatributo)
)
de esta forma, llenas los atributos (o items de tu arreglo -antes-)
que sean necesarios, y luego para saber cada atributo por proforma,
simplemente lees por el campo idproforma, y ya está..... según lo que
ví debería funcionar de acuerdo a lo que entendí de tu requerimiento.
Es esquema es absolutamente flexible, se adapta mejor que el uso de
arreglos.

On 4/18/07, javier calderon <kivurkian(at)gmail(dot)com> wrote:
>
>
> Que tal amigos de esta lista. Bueno les cuento mi porblema... Actualmente tengo esta tabla declarada en mi bd postgresql 8.2 en ambiente windows
>
> PROFORMA (
> id INT4 not null ,
> fecha INT4 null,
> detalle text[][] null,
> constraint PK_PROFORMA primary key (IDPROFORMA)
> );
>
> Ok, La informacion que Campo detalle manejará se comporta dependiendo lo que el usuario Ingrese de la siguente forma
>
> ---------------------------------------------------------------------------------------------------------------------------
> | Producto | Espesor | Ancho | Largo | Volumen | Precio | Monto Final |
> ---------------------------------------------------------------------------------------------------------------------------
> | Madera 1 | 3mm | 60 cm| 20 cm | 2 | xxxxx | xx.xxx,.xx|
> | Madera 2 | 3mm | 60 cm| 20 cm | 2 | xxxxx | xx.xxx,.xx|
> | Madera 3 | 3mm | 60 cm| 20 cm | 2 | xxxxx | xx.xxx,.xx|
> -----------------------------------------------------------------------------------------------------------------------------
>
> Como ven es una tabla normal, pero con la siguente salvedad... En ocaciones algunas se le agregaran nuevas columas o simplemente se le quitaran, por lo que pense en declarar este tipo de detalle e ingresarlo como array... Lo he logrado pero a medias ya que hago la siguente inserción.
>
> INSERT INTO proforma VALUES (1,1,ARRAY[
> ['Producto','Espesor','Ancho','Largo','Volumen','Precio ','Monto'],
> ['maderia 1','33.3','100 y Mas','2.400 y Mas','86','200.00','17.200']], 'Proforma de Prueba');
>
> Lo que no he conseguido es igualar el esquema en la tabla vista arriba, es decir estoy llenando la columna de los nombres (producto,espesor etc...) y el primer detalle relacionado al producto madera 1, y no he podido ingresar madera 2 y madera 4 con su respectivas especificaciones. Como mencione anteriormente, en algunos casos no existiran ciertas columnas o simplemente se agregaran mas columnas. No he podido representar esta tabla que a mi vista es dinamica y estructruarla (crear en la tabla los campos producto,espezor,ancho,largo,volumen etc) NO OPTIMIZARIA la realidad del negocio que estoy modelando...
>
> Quizas mi forma de atacar esta problematica no sea la solución y si alguien podria eventualmente darme una guia será Bienvenida. ahora si lo es ¿Como podria representar en el campo Detalle esta tabla?...
>
> Bueno si no me he explicado de la mejor forma digame y relato mejor mi problema... Gracias y saludos
>
> Atte:
>
>
>
> --
> Javier Calderón.
>
> Desarrollo de Sistmas de Informacion

--
Rubén D. Guíñez G.
Software Developer

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-04-19 14:10:25 EAV (era Re: manejo de arrays)
Previous Message javier calderon 2007-04-19 03:39:57 manejo de arrays