Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Campo calculado en sql

Estas en el tema de Campo calculado en sql en el foro de Bases de Datos General en Foros del Web. Buenas soy nuevo en el foro y tengo una consulta sobre un campo calculado: Tengo las tablas Venta_cabecera(id_factura, monto_total) Venta_detalle(id_factura, id_articulo, precio_venta) La PK de ...
  #1 (permalink)  
Antiguo 03/06/2012, 15:48
 
Fecha de Ingreso: junio-2012
Mensajes: 1
Antigüedad: 11 años, 11 meses
Puntos: 0
Campo calculado en sql

Buenas soy nuevo en el foro y tengo una consulta sobre un campo calculado:
Tengo las tablas

Venta_cabecera(id_factura, monto_total)
Venta_detalle(id_factura, id_articulo, precio_venta)

La PK de la primera es id_factura
La PK de la segunda es id_factura y id_articulo

lo que quiero hacer es que en el campo "monto_total" de la primera tabla tenga como dato la suma de los precios de los articulos(precio_venta en la segunda tabla) que sean de la misma factura.
  #2 (permalink)  
Antiguo 03/06/2012, 16:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Campo calculado en sql

Los campos calculados están prohibidos en el modelo E-R. Si lo estás haciendo estás cometiendo un error grave.
Si lo hicieses en un examen, reprobarías sin más trámite.

En una factura, no se guardan totales sumados ni subtotales de artículos, sino los datos necesarios para calcular esos subtotales y total en el momento de hacer el query.
Guardar valores calculados genera inconsistencias de datos si alguno de los parámetros que dan origen al valor se modifica o ajusta por la razón que sea. Esto genera la necesidad de corregir los valores tal que se necesita crear procesos en la aplicación o la base que generen esas correcciones.
Tales procesos carecen de utilidad y sentido, y lo único que hacen es arruinar la performance del sistema, porque se vuelve innecesarios al no almacenar tales sumas. Luego, como se prepara la base para mantener los valores históricos de los artículos, es muy sencillo reconstruir el valor de la factura emitida, en cualquer momento del tiempo.
Toda "rapidez" lograda por contar con esos valores ya almacenados, se pierde en los procesos de verificación de consistencia.

¿Se entienden estos conceptos?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 03/06/2012 a las 17:12

Etiquetas: sql, campos, calculadora
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:54.