Использование sql lite 3 и telebot одновременно несколькими людьми, будет ли ошибка?
Я делаю бота в ТГ с возможностью создать дисконтную карту, от пользователя нужны его имя и дата рождения. Я плохо владею aiogram, поэтому использую связку teleapi и sql lite3, такой вопрос. Если два пользователя одновременно будут создавать карту, будут ли данные в бд записываться корректно?
То есть
Иван - вводит имя
Саша - вводит дату
Все это происходит одновременно, будут ли данные отображаться в бд корректно и не будет ли путаницы между ними, очень нужен ответ
Пользователь бота (человек) и пользователь БД (процесс с питоновским кодом) - это разные сущности. Не смешивай их и разберись кто есть кто в твоей проблеме. Учебники и курсы для начинающих по питону и базам данных через питон помогут разобраться с такими вопросами.
Будет.
SQLite по-умолчанию однопользовательская система. Вам надо либо организовать очередь, собирающую запросы к БД и в дальнейшем обрабатывающую их последовательно в порядке поступления (fifo), либо выбрать более взрослую БД, умеющую обрабатывать несколько запросов одновременно.
Ну и, конечно, стоит сначала поискать. Тут подобный вопрос задают регулярно.
а по-моему конфликта не будет. для того, чтобы был конфликт нужно одновременные запросы к бд. а это еще нужно как-то реализовать в коде. то есть должно быть два процесса, которые шлют запросы или два потока
Александр, глубоко я не погружаюсь в ботов, но вот эта ссылка мне подсказывает, что не все так однозначно.
Ну а кода-то нет, поэтому остается предполагать.
Алан Гибизов, топикстартер использует другую библиотеку, совсем примитивную и синхронную
насколько я правильно понял. хотя, в заголовке написано telebot, в вопросе написано про teleapi https://github.com/DesSolo/teleapi
Борис Алексеев, Решил проблему, сделал поочередные запросы к бд с привязкой на id пользователя, чтобы данные не мешались в бд, спасибо за помощь всем тем, кто отписал, вы мне очень помогли
Если используете pytelegrambotapi (telebot), то с помощью register_next_step_handler вполне несложно собрать разом нужные данные и потом одним запросом записать их в БД. пользователи при этом друг другу не помешают. У каждого пользователя будет своя запись в БД