RV: Recalculo

From: "Sergio Vizcaino" <SergioV(at)azud(dot)es>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RV: Recalculo
Date: 2005-05-19 13:12:10
Message-ID: EA511A5BEEE67E4482DA71F839470D0F045C65@servidor.AzudIn.local
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

-----Mensaje original-----
De: MXximo Eduardo MXndez [mailto:mmendez(at)ceride(dot)gov(dot)ar]
Enviado el: jueves, 19 de mayo de 2005 14:01
Para: Sergio Vizcaino
Asunto: RE: [pgsql-es-ayuda] Recalculo

19 May 2005 04:21 ART usted escribio:

>
> Buenas Maximo,
>
> El control de las existencias ya se lleva en otra tabla aparte, esta
> es un control de movimientos de stock, con ella lo que pretendo es
> poder decir que:
>
> "del articulo tal entro un albaran de proveedor en la fecha y hora tal
> con la cantidad de tantos articulos y en ese momento las existencias
> del articulo fueron x"
>

Hola Sergio. Sigo con lo que te decía... ese valor X es posible obtenerlo en el momento sin necesidad de registrarlo. Tal vez desde un punto de vista práctico y para que no salgas a calcularlo podrías llevar otra tabla de información sumaria que tenga valores acumulados pero por rangos de tiempo, y de esta manera hacer las operaciones más rápidas. Tampoco sé cuantos registros prevés manejar en la tabla, pero podría ser una solución y tal vez más rápida. De todas maneras, la manera de resolverlo que vos planteás también te resuelve tu problema, pero te repido lo que te dije antes, vas a tener que tener triggers que controlen y actualicen por vos esa cantidad (no lo hagas desde una aplicación cliente y registres el resultado en la tabla), así te salvás de que quien modifique algo por "fuera" de tu aplicación (por ejemplo desde psql) se mantendrán los datos consistentes. Te digo de los triggers suponiendo que las reglas de negocios no están en otra capa en tu aplicación.

> Lo voy a intentar como tu dices con una funcion y un cursor a ver que
> me sale.
>
> Si la verdad es que soy bastante nuevo en Postgree, y ademas con una
> desventaja, que durante mucho tiempo he estado trabajando con
> aplicaciones con tablas en dbase. Asi que en experiencia con sistemas
> gestores ando cortito.
>
> Gracias y saludos.
>

Enhorabuena que cambiaste a una base de datos "en serio". En lo que pueda ayudarte no dudes en consultar; en la lista hay mucha gente con buena predisposición para ayudar. Mucha suerte.

Máximo Eduardo Méndez
CERIDE
>
> -----Mensaje original-----
> De: MXximo Eduardo MXndez [mailto:mmendez(at)ceride(dot)gov(dot)ar] Enviado el:
> miércoles, 18 de mayo de 2005 16:01
> Para: Sergio Vizcaino; pgsql-es-ayuda(at)postgresql(dot)org
> Asunto: Re: [pgsql-es-ayuda] Recalculo
>
> > Buenas,
> >
> > tengo que realizar un recalculo muy a menudo que actua de la
> > siguiente
> > manera:
> >
> > Codigo Tipo Cantidad Existencias
> >
> > Art1 Inventario 10 10
> > Art1 Venta -2
> > Art1 Compra 5
> > Art1 Venta -1
> >
> > Al tratarlo lo dejaria asi:
> >
> > Codigo Tipo Cantidad Existencias
> >
> > Art1 Inventario 10 10
> > Art1 Venta -2 8
> > Art1 Compra 5 13
> > Art1 Venta -1 12
> >
> > Esta operativa ya la tengo dentro de mi aplicacion, y he estado
> > intentando llevar esta ejecucion a postgre.
> >
> > ¿Sera mejor si lo hace postgre??
> >
> > ¿Alguien me podria guiar para poder hacerlo?
> >
> > Saludos,
> >
> > Sergio.
> >
> Hola Sergio.
>
> Mirá, ese recálculo que intentas realizar, por más que sea a menudo, no deja de ser sobre una columna derivada. Si tenés una estructura de datos que la contenga, tendrás que mantenerla con triggers porque cada vez que hagas alguna modificación, ese valor sufrirá cambios (salvo que no te importe tenerla actualizada con las modificaciones). Por otra parte, si lo que deseas es mantener las existencias, tal vez sería más conveniente tenerla registrada en otra tabla de artículos (por ejemplo con las columnas idArticulo, nomArticulo,..., y existArticulo), de manera tal que contenga solamente un valor. Entonces tal vez debas rever el modelo. De todas maneras, si lo deseás realizar así, podrías hacer una función que abra un cursor sobre los registros que querés utilizar ordenados por el criterio que presentás en el ejemplo, e ir actualizando los valores de existencia sumándole la cantidad (positiva o negativa) al acumulador que inicializás en cada corte de control.
>
> Tengo poca experiencia en postgres porque recién me meto en esto, pero tengo muchos años trabajando en diseño de bases de datos y trabajando con otros motores pero PAGOS. Cualquier cosa estoy a tu disposición.
>
>
> Máximo Eduardo Méndez
> CERIDE
>
>
>
>
> ---------------------------(fin del
> mensaje)---------------------------
> TIP 3: si publicas/lees desde Usenet, por favor envía "subscribe-nomail"
> a majordomo(at)postgresql(dot)org para que tus mensajes puedan llegar
> a los suscriptores de la lista

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2005-05-19 13:18:46 Re: Quien es INSERTED/DELETED en POSTGRESQL..????? -->>NEW/OLD..???
Previous Message Alvaro Herrera 2005-05-19 13:08:23 Re: Como instalar PL/pgSQL