У меня есть система плюс / минус, где пользователь может добавить один или минус один из поста в блоге.
Моя таблица базы данных (MySQL) выглядит следующим образом:
Идентификатор пользователя
идентификатор входа
голосовать - +1 или -1
TIMESTAMP
Я установил для timeStamp значение по умолчанию CURRENT_TIMESTAMP.
У меня есть методы плюс () и минус (). Оба делают одно и то же, но один добавляет +1 в голосование, а другой - -1. Поскольку (идентификатор пользователя, entryid) является первичным ключом, я использую REPLACE INTO. INSERT INTO вызывает ошибку дублирования. INSERT IGNORE не позволяет пользователю изменять голосование с +1 на -1
"REPLACE INTO votes(userid, entryid, vote) VALUES(:uid,:eid, -1)";
Игнорировать значения ..
Несмотря на то, что REPLACE INTO работает отлично, я упорядочиваю по отметке времени, поэтому, когда кто-то нажимает +1 во второй раз после голосования, он обновляет отметку времени, и это приводит к началу списка.
Кто-нибудь знает решение этой проблемы?
ps извините за плохой заголовок. Не могу придумать подходящего.