@TheMergus

Как добавить к базе данных число через сутки?

Есть бот в телеграмме и база данных (SQLite)
Пользователь совершил действие (например: написал боту "Бонус"), у пользователя в базе данных отнимается 1, как сделать, чтобы через 24 часа пользователю добавлялось 1?
  • Вопрос задан
  • 224 просмотра
Пригласить эксперта
Ответы на вопрос 4
@tutuborg
Сразу добавить. Но! Вместе с датой-временем, начиная с которой начинает действовать бонус.
Тогда в запрос легко можно будет получить текущее значение бонуса, в зависимости от текущей даты-времени. Весь расчет возьмет на себя движок СУБД.
Ответ написан
Комментировать
@Denioo
Элементарно же! добавь проверку и все. Т.е. когда человек вводит бонус у него отнимается 1, затем когда у него 0, и не прошло 24 часа с последнего момента когда он брал бону, а он просит бонус - говори типо не прошло времени.
В бд я вижу это так, есть столбец data привязанный к определенному индентификатору(бонус) который отвечает за эти баллы. И когда человек берет бонус в столбец data и идентификатор(бонус) записывается его данные, т.е. дата и бонус всегда перезаписываются. Зачем тебе каждые 24 самому добавлять 1? когда можно сделать проверку и все.
Ответ написан
Комментировать
Можно действия пользователя записывать в бд с меткой времени. Тогда на любой момент времени можно рассчитать действующее количество баллов, "проиграв" историю его действий.

Когда данных станет слишком много и расчеты станут тяжелыми, можно делать снэпшоты: сохранять в бд промежуточное кол-во баллов и далее считать, начиная с этого момента, а не с начала времен.
Ответ написан
Комментировать
google_online
@google_online
My morning begins with coffee and Twitter.
Можно записывать дату в бд и потом чекать прошли ли сутки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы