Sto sviluppando una webapp MVC simile a un giornale con un tipo di contenuto article
che ha un campo visits
. Il database è mysql.
Ogni volta che un visitatore richiede un articolo, il campo visits
dell'articolo viene incrementato di 1. Così posso facilmente interrogare article
tabella in base alle loro visite complessive.
Ma quello che voglio è ordinare gli articoli in base al numero di visite che ogni articolo ha ricevuto la scorsa settimana.
Ho pensato di avere una tabella separata come weekly-stats
in cui posso inserire e incrementare gli articoli con le loro visite recenti su ogni richiesta, ma poi ho bisogno di svuotare la tabella settimanalmente come cron job, che non è l'ideale, e lascia le statistiche svuotate dopo che il tavolo è stato svuotato.
Ho anche pensato di fare in modo che le visite degli articoli vengano salvate in una cache in scadenza come redis e impostare i record della cache scaduti dopo una settimana, ma in questo modo vengono introdotte tutte le complessità dell'inserimento e dell'interrogazione degli elementi hash redis.
Quindi ho pensato che potrebbero esserci alcune strategie di progettazione più semplici che mi mancano. Come posso ottenere questo con il minimo fastidio?