Comunidad de diseño web y desarrollo en internet online

Cambio el valor de un campo manteniendo valores antiguos

Citar            
MensajeEscrito el 09 Feb 2014 11:12 pm
Saludos, este mi primer post y espero que los siguiente sean para aportar mas que para consultar.

Tengo que hacer una aplicación de facturas donde tengo las tablas clientes, facturas, detalle_facturas y productos.

El problema que tengo, ya que al estar relacionadas la tabla facturas con detalle_facturas y productos via "id" y claves foráneas. Al cambiar el precio de algún producto en el futuro, al hacer un SELECT de una factura antigua no le variará el valor de esos productos pasados, ya que todos los valores se cambian en cascada.

Como puedo mantener los valores antiguos de las facturas pasadas, en el momento que el usuario cambie los precios de los productos en la actualidad.

Ejemplo (solo si no quedo claro lo de mas arriba)


cada mouse sale 1.000 pesos chilenos en abril del 2010.



Factura 1 30/04/2010

cant Descripcion unitario total

2 mouse 1.000 2.000


iva 19% 380

Total 2.380



se sube el precio de los mouse de 1.000 a 1.500 el abril del 2013 y quiero ver la factura de el 2010




Factura 1 30/04/2010

cant Descripcion unitario total

2 mouse 1.500 3.000


iva 19% 570

Total 3.570


Si le subo el precio al mismo producto al cambiar por cascada, cambiara el valor de las facturas pasadas.

¿Como puedo bloquear el cambio de valores en el pasado?

Saludos.

Por metratron

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 10 Feb 2014 12:26 am
lo que tienes que hacer es desligar la descripcion del producto con los precios y costos, bueno no se como poder explicartelo pero como yo lo resolveria seria, hacer una tabla que contenga la descripcion del producto, y luego otra tabla de intems,donde contenda el ID de la descripcion del producto y el precio de venta,

bueno es una idea a medias pero algo es algo :)

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Feb 2014 12:59 am

tuadmin escribió:

lo que tienes que hacer es desligar la descripcion del producto con los precios y costos, bueno no se como poder explicartelo pero como yo lo resolveria seria, hacer una tabla que contenga la descripcion del producto, y luego otra tabla de intems,donde contenda el ID de la descripcion del producto y el precio de venta,

bueno es una idea a medias pero algo es algo :)


Te entiendo el concepto, pero si no me equivoco se generaria el mismo problema, ya que si modifico el precio actualmente, al estar relacionadas las tablas via id y llave foranea, las facturas antiguas igualmente tomarian el valor nuevo.

Saludos.

Por metratron

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 10 Feb 2014 03:01 am
la idea de items es que sean alimentadas, osea en descrpcion puedo tener los siguientes datos
____descripcion
id -nombre
1 -Mouse
en la tabla
_____ITEMS
id-id_descripcion-cantidad-precio
1-1 -1 -125.00
2-1 -1 -128.00

como ves hay 2 items exactamente iguales solo que varian entre precio e id,ahora esa tabla de ITEMS,debe ser alimentada ,con COMPRAS,osea cuando compras, lo tienes q llenar al precio q esta ahi

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Feb 2014 12:27 pm
Es muy sencillo, guarda el precio de venta en el detalle de factura, también has lo mismo con la descripción y la tasa de IVA. Guarda también la clave principal del producto pero ésta NO debe estar relacionada con la tabla productos.

La factura es un documento legal y por tanto no debe modificarse nunca una vez confeccionada (no importa qué es lo que diga la teoría de base de datos).

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 10 Feb 2014 10:56 pm

DriverOp escribió:

Es muy sencillo, guarda el precio de venta en el detalle de factura, también has lo mismo con la descripción y la tasa de IVA. Guarda también la clave principal del producto pero ésta NO debe estar relacionada con la tabla productos.

La factura es un documento legal y por tanto no debe modificarse nunca una vez confeccionada (no importa qué es lo que diga la teoría de base de datos).


Si, tienes razon en este caso, es mejor guardar el monto total sera un solo campo en la base de datos no es una gran diferencia entre mantenerlo y no mantenerlo.

Saludos a todos y muchas gracias por responder.

Por metratron

1 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.