кнопку юзер сохраняется в бд(если его там нет), но если юзер нажмет многократно инлайн кнопку, то в бд попадет несколько дубликатов, как это исправить?
Благодарю
версионирование неидемподентных команд Тут можно почитать про смысл проблемы и её решения из мира rest api https://habr.com/p/442762/
можно прописать в правилах бота и банить , чтоб в бд не срали
Unique ничего вам не говорит?)
какая бд?
Я в своём боте просто на регистрацию в БД навесил проверку, что если при попытке регистрации база говорит, что ключ дублируется, то ответить юзеру, что он уже зарегистрирован. На это по идее даже проверку не надо в моём случае, так как Postgres сам выплёвывает мне в консоль ошибку, что такой ключ уже есть. Я просто её обрабатываю. Альтернативный способ: брать данные юзера и проверять, что в базе id нет, а потом решать, добавлять или нет, но так получится 2 запроса, в БД вместо 1.
Кроме 2х запросов получится race condition
Так асинхронная функция и всё, нет? Или ты про ситуацию, когда ещё не зарегали юзера и влупили регистрацию на второй раз?
Обсуждают сегодня