Задать вопрос
@YuriyCherniy

Как сохранять состояние пользователя телеграм бота?

Пишу Telegram бота на Python в учебных целях без использования сторонних библиотек. Бот реализует словарные карточки для изучения иностранного языка. Алгоритм работы: есть набор из 100 слов, бот одновременно тренирует 10 слов из набора до тех пор, пока пользователь не по пометит какое-нибудь слово выученным, затем это слово удаляется из тренируемых и добавляется новое из оставшихся 90. Вопрос: как реализовать возможность использования бота несколькими юзерами? Думаю подключить SQlite базу данных и записывать состояние после каждого изменения. Но изменения могут быть слишком частыми и читать придется базу при каждом взаимодействии с пользователем. Не слишком ли это накладно для производительности бота?
  • Вопрос задан
  • 1953 просмотра
Подписаться 3 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Профессия Python-разработчик + ИИ
    10 месяцев
    Далее
Решения вопроса 2
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Возьми нормальную базу. MySQL или Postges, например. Можно какую-то другую, но только не sqlite
Ответ написан
@imvo
Можно и json файлах хранить это дело. Если строк меньше миллиона, то проблем со скоростью не будет
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Gersog
Возьмите обыкновенные txt файлы. В один будет записываться база юзеров, и один принадлежит каждому юзеру, где хранится текущее состояние его. При каждом запросе проверяйте есть ли юзер в первом файле, если есть то идет проверка какое сейчас состояние. В БД всегда можно будет потом все перенести, чтобы сейчас не тратить кучу времени на изучение.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽