¿Existen pautas o reglas generales para determinar cuándo almacenar valores agregados y cuándo calcularlos sobre la marcha?
Por ejemplo, supongamos que tengo widgets que los usuarios pueden calificar (ver el esquema a continuación). Cada vez que visualizo un widget, puedo calcular la calificación promedio de los usuarios de la Ratings
tabla. Alternativamente, podría almacenar la calificación promedio en la Widget
mesa. Esto me evitaría tener que calcular la calificación cada vez que visualizo el widget, pero luego tendría que volver a calcular la calificación promedio cada vez que un usuario calificara un widget.
Ratings Widgets
--------- -------
widget_id widget_id
user_id name
rating avg_rating <--- The column in question