Ti consiglio di creare il design più flessibile che ti permetta di creare nuovi report man mano che i requisiti si estendono in futuro. Suggerisci al cliente di desiderare rapporti sulle "impressioni giornaliere". E se arrivassero più tardi e dicessero "a che ora del giorno vengono mostrate di più le impressioni"? Che ne dici di "quando sono più cliccati"?
Quindi il modo più flessibile per farlo è avere 1 record per ogni impressione, dove ogni record è justbanner_idtimestamp
Successivamente, puoi creare una procedura memorizzata che aggrega i dati storici e quindi elimina ENORMI quantità di dati che hai accumulato, creando così report con il livello di granularità che ti interessa. Posso immaginare di archiviare dati orari per un mese e dati giornalieri per un anno. I processi archiviati scriverebbero semplicemente in una tabella di archivio:
- ID banner
- Identificatore dell'intervallo di tempo (del mese/anno per i dati mensili, o giorno/mese/anno per i dati giornalieri, ecc.)
- Numero di impressioni