Я бы порекомендовал создать максимально гибкий дизайн, который позволял бы создавать новые отчеты по мере расширения требований в будущем. Вы предлагаете клиенту получать отчеты о "показах в день". Что если они придут позже и скажут: «В какое время дня показы чаще всего показываются»? Как насчет "когда они нажимают на большинство"?
Таким образом, наиболее гибкий способ сделать это состоит в том, чтобы иметь 1 запись для каждого показа, где каждая запись просто
banner_id
Отметка времени
Позже вы можете создать хранимую процедуру, которая агрегирует исторические данные и, таким образом, удаляет ОГРОМНЫЕ объемы данных, которые вы накопили - таким образом, создавая отчеты на уровне детализации, который вас интересует. Я могу представить себе хранение почасовых данных за месяц и ежедневных данных за год. Хранимые процедуры будут просто записывать в архивную таблицу:
- Баннер ID
- Идентификатор временного интервала (месяца / года для данных за месяц или дня / месяца / года для данных за день и т. Д.)
- Количество показов