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

Как удалять лишние записи из бд?

Что происходит:

1. Юзер вводит свой телефон (и прочую информацию, типа имя, фамилия и т.п)
2. В этот момент скрипт делает запись в бд с номером телефона юзера и кодом, который он должен ввести для подтверждения своего номера телефона (то есть последние 5 цифр входящего вызова). Запись делается в таблицу A
3. Ему звонит бот
4. Юзер вводит 5 последних цифр входящего вызова
5. Скрипт сверяет введенные 5 цифр с записью, сделанной в бд в пункте 2

Случай 1:

Юзер вводит верный код. Из таблицы A удаляется запись с номером телефона и требуемым пин кодом. Эта информация нам вообще больше не нужна. Мы ведь знаем, что юзер уже подтвердил свой номер - можем регистрировать его аккаунт. Добавляем в таблицу B информацию о новом юзере.

Ура! У нас новый пользователь.

Случай 2:

Юзер изначально ввел неверный номер телефона, возможно случайно, возможно специально. Бот начал звонить какому-то другому человеку. В этот момент в таблицу A была сделана запись с этим номером телефона и требуемым пин кодом.

Итак, проблема:

В случае номер 2, запись из таблицы A никогда не удалиться, т.к юзер не ввел пин код.

Вариант решения:

Каждый раз, когда скрипт делает запись в таблицу A, проверять, есть ли записи, которым уже более 5-и часов и если такие есть - то удаляем их.

Верно ли такое решение?
  • Вопрос задан
  • 84 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
kawabanga
@kawabanga
Поставьте прогорание токена на 20-30 минут. этого вполне достаточно. Достаточно записать текущее время в строке.
А затем, любым удобным способом вычищайте устаревшие данные.
Либо не удаляйте. как минимум, строка которая записана - это еще и согласие с правилами , и у вас есть дата этого соглашения.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы