powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Защита от дублирования записей
15 сообщений из 15, страница 1 из 1
Защита от дублирования записей
    #40020350
lkk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lkk
Гость
Здравствуйте!

У меня есть таблица с личными сообщениями пользователей, которая содержит следующие поля:

`id` int(11) NOT NULL,
`date` datetime NOT NULL,
`from_id` int(11) NOT NULL,
`to_id` int(11) NOT NULL,
`text` text NOT NULL

Проблема в том, что иногда одинаковые записи добавляются в таблицу несколько раз. Хочу защититься от этого сделав уникальный индекс по полям date, from_id, to_id. Проблема в том, что дата в полностью одинаковых записях может отличаться на несколько секунд и тогда всё равно не получается защититься от дублей подобным образом. Существует ли способ каким-то образом создать уникальный индекс чтобы для поля даты учитывалось значение до минут (без секунд)?
...
Рейтинг: 0 / 0
Защита от дублирования записей
    #40020384
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создайте вычисляемое поле (generated column) и используйте его в индексе.

Вот только между 12:23:59 и 12:24:00 - одна секунда, а минуты разные. Так что лучше создайте триггер.
...
Рейтинг: 0 / 0
Защита от дублирования записей
    #40020390
lkk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lkk
Гость
Akina,

да, пока только такая идея была, но описанный вами момент с 1 секундой смущает.

триггер? Расскажите где почитать?
...
Рейтинг: 0 / 0
Защита от дублирования записей
    #40020393
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Защита от дублирования записей
    #40020395
lkk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lkk
Гость
Akina,

а можно пример как это можно в моём случае использовать? Не совсем понимаю.
...
Рейтинг: 0 / 0
Защита от дублирования записей
    #40020401
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Защита от дублирования записей
    #40020408
lkk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lkk
Гость
Akina, большое спасибо!
...
Рейтинг: 0 / 0
Защита от дублирования записей
    #40020924
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может проблема в БД, а фронте, когда юзверь не дождавшись тормозной реакции успевает нажать отправку формы дважды или когда срабатывает повторная отправка по иным причинам?

Если так, то лучше блокировать на стороне фронта и не пытаться писать в БД второй раз.
...
Рейтинг: 0 / 0
Защита от дублирования записей
    #40021203
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lkk,

Лучше отследить на клиенте ситуации и исправить такие повторные отправки
...
Рейтинг: 0 / 0
Защита от дублирования записей
    #40021245
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov
Лучше отследить на клиенте ситуации и исправить такие повторные отправки
Я бы сказал - И на клиенте. Проверка на клиенте никак не отменяет необходимости контроля на стороне сервера.
...
Рейтинг: 0 / 0
Защита от дублирования записей
    #40021470
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

Да там же уник кей дт+фром достаточно
...
Рейтинг: 0 / 0
Защита от дублирования записей
    #40021513
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov
уник кей дт+фром достаточно
Да? с учётом девиации значения? интересно было бы увидеть...
...
Рейтинг: 0 / 0
Защита от дублирования записей
    #40021543
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina
Alex_Ustinov
уник кей дт+фром достаточно
Да? с учётом девиации значения? интересно было бы увидеть...
интересно увидеть девиацию в передаче сообщения между пользователями, даже когда оба пьяны...
В любом случае послать сообщение руками одному пользователю два раза в секунду это ненормальная ситуация.
Не хочется углубляться. Но это больше задача клиента- не отсылать уже отправленное.
Я почему то в этом окне не могу отправить - оно у меня закрывается, это так, к примеру
...
Рейтинг: 0 / 0
Защита от дублирования записей
    #40021544
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov
Akina,

Да там же уник кей дт+фром достаточно
дт+фром+ту выше крыши
...
Рейтинг: 0 / 0
Защита от дублирования записей
    #40021549
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,

Вы просто не успеваете .. ;)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Защита от дублирования записей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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