Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Windows [игнор отключен] [закрыт для гостей] / загадочные дубликаты / 9 сообщений из 9, страница 1 из 1
14.12.2014, 17:55
    #38833527
forward12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загадочные дубликаты
Всем привет.
Вобщем есть простенькая админка для добавления платежей в БД сайта. Админка благополучно работает уже года 2. Но недавно появился баг, при добавлении платежей, дублируются записи в БД. Смотрел поле которое отображает время добавления платежей. Там оба платежа идут с одинаковым временем с точностью до секунды. Сам скрипт просто как двери, без циклов и ветвлений. Т.е. для дублирования причин нет. Код скрипта около килобайта, обычный insert вставляющий данные из пост запроса. Сам пост запрос смотрел парсером, смотрел ответ сервера, все выполняется ровно 1 раз.
Сегодня дублирование исчезло. Причина гдето в БД или nginx?
Ссылку на админку по понятным причинам скинуть не могу. Перезагрузку мускульного процесса делал но не помогло.
...
Рейтинг: 0 / 0
14.12.2014, 18:08
    #38833537
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загадочные дубликаты
Да просто кликнули два раза подряд на кнопку.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.12.2014, 19:03
    #38833562
forward12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загадочные дубликаты
Dimitry SibiryakovДа просто кликнули два раза подряд на кнопку.

нет, я проверял несколько раз. стоял над душой у людей, ставил парсер. Запрос на скрипт уходил по 1 разу. Я даже сделал на ява скриптах защиту от 2-ного клика, как только кликнули, кнопка становится не видимой до тех пор пока в БД не пропишется новая запись, потом появляется алерт, и после того как пользователь кликнет по алерту, только тогда появится кнопка чтобы добавить новый платеж.
...
Рейтинг: 0 / 0
14.12.2014, 19:10
    #38833569
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загадочные дубликаты
Ты недооцениваешь силу лагов. Проверяй лог доступа на сервере.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.12.2014, 09:05
    #38833773
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загадочные дубликаты
"Я даже сделал на ява скриптах защиту от 2-ного клика, как только кликнули, кнопка становится невидимой до тех пор..."
есть гарантия, что скрипт обязательно отработает между двумя нажатиями? Может, чел просто дабл кликает? У меня такое встречалось в наследии, разбирал недавно одну прогу.
...
Рейтинг: 0 / 0
15.12.2014, 10:39
    #38833864
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загадочные дубликаты
forward12нет, я проверял несколько раз. стоял над душой у людей, ставил парсер. Запрос на скрипт уходил по 1 разу. Я даже сделал на ява скриптах защиту от 2-ного клика, как только кликнули, кнопка становится не видимой до тех пор пока в БД не пропишется новая запись, потом появляется алерт, и после того как пользователь кликнет по алерту, только тогда появится кнопка чтобы добавить новый платеж.

От такого нужно не браузере защищаться, а на уровне БД. Примитивный способ - сгенерировать PK на клиенте и отправить серверу для INSERT. При попытке вставки 2-го значения с таким же ID гарантированно получишь облом.
...
Рейтинг: 0 / 0
15.12.2014, 10:58
    #38833883
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загадочные дубликаты
forward12при добавлении платежей, дублируются записи в БДВ свойствах платежа (тех самых данных, которые вводятся оператором или передаются от другого процесса) обязаны быть однозначно идентифицирующие платёж данные. А в БД эта совокупность однозначно идентифицирующих запись данных (не генерируемая сервером, вроде автоинкремента, а именно свойства платежа) должна быть уникальным ключом. Соответственно вторая копия данных вставлена не будет.
...
Рейтинг: 0 / 0
15.12.2014, 21:17
    #38834538
forward12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загадочные дубликаты
DarkMasterforward12нет, я проверял несколько раз. стоял над душой у людей, ставил парсер. Запрос на скрипт уходил по 1 разу. Я даже сделал на ява скриптах защиту от 2-ного клика, как только кликнули, кнопка становится не видимой до тех пор пока в БД не пропишется новая запись, потом появляется алерт, и после того как пользователь кликнет по алерту, только тогда появится кнопка чтобы добавить новый платеж.

От такого нужно не браузере защищаться, а на уровне БД. Примитивный способ - сгенерировать PK на клиенте и отправить серверу для INSERT. При попытке вставки 2-го значения с таким же ID гарантированно получишь облом.
ну нечто подобное и планируется.
...
Рейтинг: 0 / 0
15.12.2014, 21:19
    #38834539
forward12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загадочные дубликаты
Akinaforward12при добавлении платежей, дублируются записи в БДВ свойствах платежа (тех самых данных, которые вводятся оператором или передаются от другого процесса) обязаны быть однозначно идентифицирующие платёж данные. А в БД эта совокупность однозначно идентифицирующих запись данных (не генерируемая сервером, вроде автоинкремента, а именно свойства платежа) должна быть уникальным ключом. Соответственно вторая копия данных вставлена не будет.
согласен. Но БД проектировал не я.
Вобщем старую таблицу я не могу расширить, но добавить дополнительную связанную с уникальными ИД можно.
...
Рейтинг: 0 / 0
Форумы / Windows [игнор отключен] [закрыт для гостей] / загадочные дубликаты / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]