Ну, я бы разработал таблицу для текущих данных, а затем таблицы с агрегированными данными. Время от времени (возможно, еженедельно / еженедельно / ежемесячно) я собирал данные, записывал их в таблицы и удалял из текущих данных.
У меня была бы точно такая же таблица (поля: идентификатор измерения, скорость ветра, направление ветра, температура, свет и дождь, отметка времени) для каждого необходимого уровня агрегации.
- measurements_weekly
- measurements_daily_average
- measurements_weekly_average
- measurements_monthly_average
- measurements_yearly_average
Это имеет несколько преимуществ:
Данные могут управляться отдельно (резервное копирование / подробные отчеты и т. Д.).
Вам просто нужна одна процедура агрегирования для всех уровней агрегации и запускать ее с разными временными панелями и таблицами в качестве аргументов. Запросы к любой таблице и, следовательно, анализ будут быстрыми и эффективными.
Если вам не нравятся кажущиеся избыточными структуры, вам также может хватить двух таблиц:
один для измерений и один для агрегированных измерений, который затем должен включать интервал времени. Но этот подход привнесет сложность в ваши процедуры агрегирования и любой анализ, поэтому я бы не стал его использовать.