Tengo una gran cantidad de datos existentes en mi base de datos, y quiero desarrollar un mecanismo de puntos que calcule una puntuación para cada usuario en función de las acciones que realice.Diseñando un sistema de puntos en Spring
Implemento esta funcionalidad de forma conectable, de modo que sea independiente de la lógica principal y confíe en los eventos de primavera que se envían, una vez que se modifica una entidad.
El problema es qué hacer con los datos existentes. No quiero comenzar a acumular puntos a partir de ahora, sino más bien incluir todos los datos hasta ahora.
¿Cuál es la forma más práctica de hacer esto? ¿Debo diseñar mis complementos de manera que proporcionen un método de índice(), que forzará a mi sistema a buscar cada entidad de la base de datos, enviar un EntityDirtyEvent, activar los complementos de puntos para cada uno y luego actualizar esto, para permitir que los puntos se guarden al lado de cada entidad. Eso podría generar muchos gastos generales, ¿verdad?
Lo más simple sería crear un procedimiento almacenado complejo, y luego hacer que el índice() llame a ese procedimiento almacenado. Sin embargo, eso me parece algo malo también. Como tendré que escribir la lógica para calcular los puntos en Java de todos modos, ¿por qué volver a SQL? Además, en general, no soy partidario de dividir la lógica empresarial en las diferentes capas.
¿Alguien ha hecho esto antes? Por favor ayuda.