Как хранить информацию о пользователях телеграмм бота?
Давно пишу телеграм ботов и всегда, чтобы хранить информацию о пользователе (товары в корзине, текущее местоположение в логической конструкции, объявления, заказы), создаю класс user, в него пишу информацию и с помощью модуля pickle сохраняю для каждого пользователя свой файл класса, который при необходимости подгружаю, исправляю и перезаписываю. Но, как вы уже поняли, система не отличается особой стабильностью. Чем лучше пользоваться, чтобы хранить информацию о пользователях (баланс, заказы, друзья, объявления и т.п.)?
PS: проблема выбора между SQL и NoSQL, что лучше для таких задач?
sqlite3 вполне годится. для предварительного хранения информации, если она получается по шагам, можно использовать redis. Только тогда, когда вся информация собрана и провалидирована, только тогда делается запись в БД
если бот сильно загружен запросами и его нужно ускорить, то нужно асинхронного бота и для sqlite использовать модуль aiosqlite https://pypi.org/project/aiosqlite/
А не будет ли постоянного пересохранения файлов, и, в следствии, потери файлов? У меня с пиклом такая проблема, что если спрос большой, то файлы порой случайно очищаются, и информация о пользовтелях сбрасывается.
shurshur, новичку следует начать с учебников, с теории. Но боюсь, что автору вопроса не надо учиться, ему надо "делать". Это проблема. Человек не считает нужным последовательно осваивать материал. Думает, что и так лучше всех знает как надо. Ну разве что пара вопросов есть, ага. А то, что курс по основам баз данных в институте - это семестр или два с лекциями и лабораторными - это для сопляков, которые не такие умненькие.
Автор вопроса похож на самоучку-кулибина, который делает прикольные вещи, талантливо соединяет колёса, рычяаги и подпорки в сарае, но поизучать про закон сохранения энергии и прочие базовые вещи - это ему некогда. У него свой путь.
Ох всю эту бы энергию да в мирное русло.
А автору вопроса желаю найти спокойного и уравновешенного ментора, который бы пользовался уважением. Может получиться полезно.