Хранить данные в бд или делать расчеты каждый раз?
Добрый день, занимаюсь метеорологическим сервисом и в процессе разработки возник следующий вопрос: есть данные об атмосфере (температура, влажность и тд.), эти показатели будут предоставляться пользователям, но помимо этого на их основе будут вычисляться различные индексы и коэффициенты, которые также будут предоставляться пользователям. Так вот, стоит ли данные расчеты хранить в базе данных или же лучше просчитывать их каждый раз при запросе пользователя? Если бы расчеты были сложные и занимали продолжительное время то ответ конечно очевиден, но в данном случае вычисления довольно простые.
Хранить или не хранить решается по нескольким критериям.
1. Как вы указали в случае сложных расчётов (хранение выступает аналогом кеширования)
2. Данные будут использоваться для агрегатов (других расчётов и статистики)
Если ответ "да" на один из пунктов, то хранить.
Если везде ответ "нет", то не хранить.
Вот именно из-за второго пункта и возник вопрос, в данный момент это не предусмотрено, но если я захочу использовать данные расчеты для предоставления статистики за какой-то период времени, то даже не смотря на то, что расчеты простые, лучше хранить их в бд? Хотя, простые это с какой стороны посмотреть, если просчитывать статистику за несколько лет, то получится очень приличный объем вычислений.
Stani10: в этом весь и вопрос - сколько данных будет участвовать в расчетах.
Собственно говоря если нет даже планов - то не храните.
При необходимости вы всегда сможете создать отдельную таблицу/несколько таблиц и произвести предкалькуляцию нужных данных сохранив их для дальнейших расчётов
Делать расчеты. Главное просмотрите все алгоритмы расчетов, на их основе определитесь с классами и методами в них. А из методов потом составляйте алгоритм подсчета