Mysql
 sql >> Base de données >  >> RDS >> Mysql

Suivi des impressions de bannière - Conception de base de données

Je vous recommande de créer la conception la plus flexible qui vous permettrait de créer de nouveaux rapports à mesure que les exigences s'étendent à l'avenir. Vous suggérez que le client souhaite des rapports sur les "impressions par jour". Que se passe-t-il s'ils arrivent plus tard et disent "à quelle heure de la journée les impressions sont-elles le plus diffusées" ? Que diriez-vous de "quand sont-ils les plus cliqués" ?

Ainsi, la manière la plus flexible de le faire est d'avoir 1 enregistrement pour chaque impression, où chaque enregistrement est justebanner_idtimestamp

Plus tard, vous pouvez créer une procédure stockée qui agrège les données historiques et purge ainsi d'ÉNORMES quantités de données que vous avez accumulées - créant ainsi des rapports au niveau de granularité qui vous intéresse. Je peux imaginer stocker des données horaires pendant un mois et des données quotidiennes pendant un an. Les procs stockés écriraient simplement dans une table d'archive :

  • Identifiant de la bannière
  • Identifiant de l'intervalle de temps (mois/année pour les données mensuelles, ou jour/mois/année pour les données quotidiennes, etc.)
  • Nombre d'impressions