Quiero ser capaz de realizar un seguimiento de los puntos de usuario obtenidos en mi sitio web. No es realmente como SO, pero el sistema de puntos es similar en el sentido de que quiero que cada usuario tenga un total y luego quiero hacer un seguimiento de las transacciones que los llevaron a ese total.Realizar un seguimiento de los puntos de usuario (al igual que SO)
¿Debo mantener un total de usuarios en la tabla de usuarios o debo simplemente retirar todas las transacciones que afectan al usuario en preguntas, totalizarlas, sumarlas y mostrar el total de puntos?
Parece que este último es más trabajo de lo necesario para obtener el total. Pero de nuevo me estremezco ante la idea de mantener la misma información (más o menos) en dos lugares diferentes.
¿Cuál es la forma correcta de diseñar esto?
EDIT: Tomó el consejo. Usando ambos y recalcs. Agregué una columna RecalcDate, y si tiene más de un día, se vuelve a cargar. El total también se vuelve a calcular cada vez que un usuario hace algo que debería afectar su puntaje total.
¿Alguien tomaría este enfoque para un sistema que podría generar cientos de transacciones por cada usuario por día? Por ejemplo, un juego donde rastreas puntos de experiencia u oro. Esas son cosas frecuentes que las personas pueden tratar de explotar, pero almacenar tantas transacciones parece aumentar el tamaño de su base de datos. –
@ Zachary - El espacio en el disco duro se trata del recurso de servidor más económico que existe, en realidad no se necesitan demasiados datos para registrar en la mayoría de los casos. Mira SO, muchas transacciones por día, pero cuando te acercas a algo como, por ejemplo, WoW tiene que lidiar, estás hablando de una escala única. En ese caso, tal vez sea necesario un enfoque diferente, tal vez registrar cada mes el total y solo mantener datos de 3 meses o algo así, para que tenga cierta capacidad de reversión en caso de un cambio de rotura, etc. –