Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Banner-Impressions-Verfolgung - Datenbankdesign

Ich würde empfehlen, das flexibelste Design zu erstellen, das es Ihnen ermöglicht, neue Berichte zu erstellen, wenn die Anforderungen in Zukunft zunehmen. Sie schlagen vor, dass der Kunde Berichte über "Impressionen pro Tag" möchte. Was ist, wenn sie später kommen und sagen:"Zu welcher Tageszeit werden die meisten Impressionen angezeigt?" Wie wäre es mit "Wann werden sie am häufigsten angeklickt"?

Der flexibelste Weg, dies zu tun, besteht also darin, einen Datensatz für jede Impression zu haben, wobei jeder Datensatz justbanner_idtimestamp

ist

Später können Sie eine gespeicherte Prozedur erstellen, die historische Daten aggregiert und so RIESIGE Datenmengen löscht, die Sie angesammelt haben – und so Berichte mit der für Sie wichtigen Granularitätsebene erstellen. Ich kann mir vorstellen, stündliche Daten für einen Monat und tägliche Daten für ein Jahr zu speichern. Die gespeicherten Prozesse würden einfach in eine Archivtabelle schreiben:

  • Banner-ID
  • Zeitintervallkennung (Monat/Jahr für monatliche Daten oder Tag/Monat/Jahr für tägliche Daten usw.)
  • Anzahl der Impressionen