Ограничение на публикацию идентичных комментариев/сообщений

Духовность™

Продвинутый новичок
Хочу ввести на сайте ограничение на публикацию идентичных текстовых объявлений.
Первая мысль - делать md5 от сообщения и при каждом insert в базу делать проверку на наличие такого же хэша. Соответственно на поле с хэшем повесить индекс на все 32 символа.

Как идея?
 

Вурдалак

Продвинутый новичок
Во-первых, хеш MD5 — 16 байт. Во-вторых, можно делать CRC32 + timestamp/user_id/IP. Это будет всего 8 байт. В-третьих, можно вообще таблицу не трогать, а CRC32/MD5 в сессию писать — это спасёт от случайных дублирований. Если человек ставит своей целью добавить нескольких одинаковых объявлений, то он это сделает, так что таблицу трогать явно не надо, IMHO. Так что идея плохая.
 

AmdY

Пью пиво
Команда форума
Духовность™
наверное, нужно ещё проверку времени делать. и то, всё это при условии, что у тебя есть функционал по апанию своих объявок.
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
объясните, зачем timestamp ещё учитывать? Что это даст?
Мне кажется незачем, просто до кучи написали, если задача отсечь одинаковые объявления, то поиск нечетких дубликатов,
Делал так же как тут
отличный вариант.
 

AmdY

Пью пиво
Команда форума
Духовность™
ну, дал я объявление, продал товар, через месяц ещё раз решил дать - достал текст из onenote и опять его опубликовал.
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
Духовность™
ну, дал я объявление, продал товар, через месяц ещё раз решил дать - достал текст из onenote и опять его опубликовал.
в бан :), нечего продавать, один и тот-же товар, а то как про корову, которая возвращалась назад к предыдущему хозяину
 

confguru

ExAdmin
Команда форума
Я в свое время делал для newsland.ru - вырезаешь пару абзацев текста и ищешь в базе.
Как базу использовался sphinx. Если находились совпадения - не давало постить или уходило в премодерацию.
 

~WR~

Новичок
Я в свое время делал для newsland.ru - вырезаешь пару абзацев текста и ищешь в базе.
А как решали вопрос с цитатами? Есть любители процитировать весь пост целиком.
Или они как-то вырезались и не попадали в сфинкс?
 

confguru

ExAdmin
Команда форума
Речь шла о новостях, чтоб избежать дублирования и уменьшить работу модераторам.
 
Сверху