Re: Modelo para formas de Pago

From: Alvaro Herrera <alvherre(at)surnet(dot)cl>
To: Jaime Casanova <systemguards(at)gmail(dot)com>
Cc: "Juan P(dot) Aviles" <jputem(at)yahoo(dot)es>, lista postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Modelo para formas de Pago
Date: 2005-06-03 23:32:23
Message-ID: 20050603233222.GB3086@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Fri, Jun 03, 2005 at 05:32:00PM -0500, Jaime Casanova wrote:
> > Necesito crear un modelo de datos para las diferentes
> > formas de pago en un sistema de venta.
> >
> > -Efectivo
> > -Cheque
> > -Tarjeta Credito
> > -Credito
> > -etc
> > (se deberia poder crear nuevas formas como Vales o
> > Canje de puntos)
> >
>
> Aunque no soy un "gran DBA" me atrevere a hablar para decir, que lo
> menos molesto (al menos asi ha sido para mi) es hacer todas esas
> consideraciones en el cliente. Quiza no tanto como botar los conceptos
> a la basura, pero si dejarlos (momentaneamente) guardaditos y
> dobladitos en el libro.

Yo tampoco soy un gran DBA, pero creo que lo que haria seria tener una
tabla para el pago que lleve una columna con "tipo de pago"; y que eso
haga referencia a otras tablas que describan el pago en detalle. Cada
tipo de pago debera tener su propio juego de tablas para esta
descripcion. Asi, si pagas con cheques, la tabla de pagos de cheques
llevaria la cuenta de los cheques, las fechas, los montos de cada uno,
etc; en cambio la tabla para pago en efectivo lleva simplemente el monto
total pagado.

Mi idea seria implementar una restriccion CHECK que haga de
especie-de-llave-foranea, que verifique que se ingrese el pago en la
tabla correspondiente. (A su vez, las tablas de cada tipo de pago deben
tener llaves foraneas que hagan referencia a la tabla de pagos).

Cuando quieras agregar nuevos tipos de pagos, vas a tener que agregar
las nuevas tablas que los soporten, y adicionalmente modificar la
restriccion CHECK para hacerle referencia. No es automatico, es decir
tienes que modificar levemente el esquema. Pero no creo que tenga
sentido apuntar mas alto en este caso, conservando simultaneamente la
sanidad mental.

--
Alvaro Herrera (<alvherre[a]surnet.cl>)
"In a specialized industrial society, it would be a disaster
to have kids running around loose." (Paul Graham)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan P. Aviles 2005-06-04 01:32:19 Re: Modelo para formas de Pago
Previous Message Jaime Casanova 2005-06-03 22:32:00 Re: Modelo para formas de Pago