Пишется статистика на каждый день.
Структура:
date | type | num
2020-04-06 | rating | 384
Событий получается штук 40-к и некоторые события не меняются ежедневно.
Вопрос - стоит ли писать такие данные в БД на каждый день?
Пример: тип rating. Вчера он был = 384, сегодня также 384 - получается я забиваю неизменяемые данные и нарушаю принципы DRY.
Но если я буду писать только измененные данные - я не понимаю как мне получить выборку из базы.
SELECT *
FROM `site_statistics`
WHERE type = 'rating'
AND date = '2020-04-06'
- не вернет мне ничего. Но там могут быть данные за вчера. Как мне получить ближайшие снисходящие по дате данные в таком случае? если например неделю назад была запись, каким-то образом подзапросом найти последнее значение типа?
Получать надо в статистике данные за текущий день, но если они не изменялись - то брать последнее значение за ближайшие дни когда запись была.
Или все же не стоит заморачиваться и каждый день писать одно и тоже значение в базу?
Тогда там может быть:
2020-04-06 | rating | 384
2020-04-05 | rating | 384
2020-04-04 | rating | 384
2020-04-03 | rating | 384
2020-04-02 | rating | 384
2020-04-01 | rating | 384
2020-03-31 | rating | 384
2020-03-30 | rating | 360
Напомню: что пока событий 40-к и есть вероятность что их будет больше.