такое понятие как бюджет. Бюджет формируется на основе имеющихся в БД записей доходов/расходов. Бюджет должен отображать текущее состояние и сводку по месяцам. Исходя из этого мне в голову пришла мысль что модель бюджет можно не создавать, и ограничится контроллером который будет при каждой загрузке страницы обрабатывать все записи доходов/расходов. Можно ли так поступить? Может ли такой подход в будущем вызвать лаги при обработке большого количества записей за один раз?
Конечно можно и может (на оба вопроса)! Я бы посоветовал копнуть во View или Materialized View, в зависимости от потребности. Вью - это, грубо говоря, обычный запрос в бд ("виртуальная таблица из других таблиц"). А материализованный - это уже реальная таблица с индексами, но обновляется только по запросу (на обновление, а не агрегирование данных). И вот последнюю зачастую используют для простых дашбордов. А вот если вам нужна дикая жесть, то это добро пожаловать к нереляционным субд (будь то от яндекса ClickHouse или что-то ещё). Я ни к чему не призываю, но рекомендую полюбопытствовать. Возможно, ничего из этого не подойдёт под задачу, и будет проще оставить обычный агрегирующий запрос. Если дней всего 30, то sum посчитается относительно быстро. Но в вопросах БД лучше проверять на практике и доверять цифрам, а не гипотезам.
Большое спасибо! Буду пробовать на практике)
Обсуждают сегодня