sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo guardar, manejar el monto total del pedido en un esquema de pedidos, detalles de pedidos?

Sí, es normal almacenar valores precalculados, basados ​​en otros datos de la base de datos, en una base de datos. Pero no necesariamente por la razón que mencionas. Nunca tuve un problema con MAX_JOIN_SIZE .

La razón principal, y probablemente la única, para almacenar valores calculados es la velocidad. Entonces, lo hace para valores que no cambian tan a menudo y que pueden usarse en consultas que usan una gran cantidad de datos y, por lo tanto, pueden ser demasiado lentos si no los usa.

Por ejemplo:si desea conocer el valor promedio de todos los pedidos en su base de datos, la consulta sería mucho más rápida si ya tiene los totales de los pedidos.

Por qué y cómo actualizar los valores depende completamente de usted. Sin embargo tienes que ser consistente al respecto . Si usa el patrón MVC, tendría sentido integrarlo en el controlador. O en términos simples:cada vez que se envía un formulario que podría cambiar uno de los valores, a partir del cual se calcula el valor precalculado, debe volver a calcularlo.

Esta es una clara demostración de que la 'normalización' no se mantiene del todo. No es realmente bonito, pero a veces vale la pena. Por supuesto, podría argumentar que el valor calculado representa información 'nueva' y, por lo tanto, no infringe la 'normalización'.