У меня есть приложение, в котором пользователи получают очки за действия, которые они выполняют - 1 балл за простое действие или 2 балла за сложное.
Я хочу показать пользователю общее количество баллов, которые он получил в моем приложении, и баллы, полученные на этой неделе (с понедельника в полночь).
У меня есть таблица, в которой записываются все действия, а также их время и количество очков.
У меня есть две альтернативы, и я не уверен, что лучше:
- Каждый раз, когда пользователь видит отчет, выполняйте запрос и суммируйте полученные им баллы
- Добавьте два поля каждому пользователю, в котором записано количество набранных баллов (общее и еженедельное). Значение еженедельных пунктов будет установлено равным 0 каждый понедельник в полночь.
Первый вариант проще, но я боюсь, что из-за большого количества пользователей и действий запросы будут занимать много времени.
Второй вариант предполагает риск несоответствия между таблицей действий и итоговыми значениями.
Мне очень интересно, что вы считаете лучшей альтернативой здесь.
Спасибо,
Dorian