Re: Herencia?

From: "Victor Lopez" <d01m01a2000(at)gmail(dot)com>
To: Arturo <arturomunive(at)gmail(dot)com>
Cc: "Gabriel Hermes Colina Zambra" <hermeszambra(at)yahoo(dot)com>, Postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Herencia?
Date: 2007-05-09 06:44:12
Message-ID: ae043d070705082344g39f70bd3w4c1627155486bc88@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Desempolvando mi OO, desde mis tiempos de C++ y ObjectPascal (Delphi),
se me ocurre que tienes un catalogo 'documento', con todos los datos
comunes, y dos (o mas) catálogos que heredan de este ... 'factura' y
'boleta' ...

Nota para los que somos de este lado del Atlántico ... 'boleta'
supongo que es nuestro 'albarán'

Y donde dice 'catalogo' reemplacese por clase ... o tabla ...

CREATE TABLE docs (
... campos comunes ...
);

CREATE TABLE facturas (
... campos propios ...
)
INHERITS docs;

CREATE TABLE boletas (
... campos propios ...
)
INHERITS docs;

INSERT, UPDATE y DELETE desde 'facturas' y/o 'boletas' ... no desde 'docs'

Y esta idea la dejo pendiente de confirmación por quienes saben mas
de PostgreSQL que yo.

El 8/05/07, Arturo <arturomunive(at)gmail(dot)com> escribió:
> Gabriel Hermes Colina Zambra escribió:
> > Si no mal entendi en este theread, Boletas y Facturas
> > tienen los mismos campos.
> > Por que no usar cabezales y lineas, donde en cabezales
> > tenga un tipo_documento que indique, si son Boletas,
> > Facturas, Notas de Credito, Bonificaciones etc etc, y
> > si se quiere una tercera tabla tipo_documento
> >
> > Algo asi
> >
> > cabezales
> >
> > id_cab
> > id_documento
> > numero
> > fecha
> > importe_neto
> >
> > documentos
> >
> > id_cab
> > id_lin
> > id_articulo
> > costo
> > precio
> >
> > tipo_documentos
> > id_documentos
> > descripcion
> > campos que indiquen como opera el documento.
> >
> > Esto es una idea basica, puede profundisarse en ella.
> >
> > Pero no entendi por que tener tablas separadas por
> > tipo de documento si tienen los mismos campos.?
> > O si no lo que no entendi es el problema.
> >
> > Atte.
> > Gabriel Hermes Colina Zambra
> >
> > __________________________________________________
> > Correo Yahoo!
> > Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
> > Regístrate ya - http://correo.espanol.yahoo.com/
> >
> >
> >
>
> No exactamente Factura y Boleta tiene campos comunes y campos no comunes
> por lo que lo separe en 2 tablas, por que no quería que hubiesen
> registros que tuvieran
> siempre un conjunto de campos vacios (los no comunes)
> no se si el hecho de que en una tabal halla siempre un conjunto de
> campos que no se llene
> para aproximandamente la mitad de registros merme en algo la performance.
>
> ahora si entiendo lo de cabecera linea (master,detail) es mas facuras y
> cabeceras los tienen,
> el documento que hace refrencia es una tercera tabla.
> ahora por que hago esto? por que con este mismo enfoque (el de la
> supuesta herenecia)
> podria resolver muchos problemas mas en otro sistema que estoy trabajando.
>
> la idea es que quería evitar tener una tabla de este tipo:
>
> donde dc-n es un dato comun
> y dtx-n es un dato exclusivo de una tabla
> dt1 - n para datos de la primera
> dt2 - n para datos de la segunda y asi
>
> id dc1 dc2 dc3 dt1-1 dt1-2 dt1-3 dt2-1 dt2-2 dt2-3
> dt3-1 dt3-2 dt3-3 dt4-1 dt4-2 dt4-3
> ----------------------------------------------------------------------------------------------------------------
> x x x x x x x
> x x x x
> x x x
> x x x
> x
> x x x
> x x x
> x
> x x x
> x x x x x x x
> x x x
> x
> x x x
> x x x x x x x
> x x x x
> x x x
> x x x x
> x x x x x x
> x
>
>
> x x x x x x
> x
>
>
> x x x x
> x x x
>
>
> Donde vemos que para una tabla con 4 "sub-tipos" de tabla la mayoria de
> campos quedan vacíos por registro.
> la duda que trengo es que tan malo puede ser eso?? la verda ustedes que
> son mas experimentados que yo me lo podrían hacer notar
> o es que no hay nada malo en que queden registros así?? y por gusto me
> ahogo en un vaso de agua???
>
> tablas así me recuerdan a mucho sistemas que vi en Dbase (no trato ser
> peyorativo con DBase ni Clipper eh) pero cuyo diseños
> de tablas era realmente espantoso.
>
> Ahora imaginense un sistema contable donte la tabla "cuenta" sea padre
> de tablas mas especializadas como cuentas de banco, de clientes
> activos pasivos letras etc... donde cada movimiento se debe hacer entre
> cuentas ... pero no todas las cuentas almacenan la misma informacion
>
> ademas si en mi ejemplito con 4 subtablas se ve asi... iamigenense uno
> con 20 subtablas....
>
>
> saludos
>
>
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 10: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
>

--
----o---( )---o----
Saludos de Victor Lopez Sabio
d01m01a2000(at)gmail(dot)com
--------oooo--------

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Victor Lopez 2007-05-09 07:51:07 Re: Sobre el nombre de Postgres - PostgreSQL
Previous Message Guido Barosio 2007-05-09 02:49:24 Re: Sobre el nombre de Postgres - PostgreSQL