Я ищу помощь в системе голосования сверху вниз.
В настоящий момент у меня есть таблица голосования, в которой указаны пользователь, за которого проголосовали, пользователь, за которого проголосовали, и часть информации (парковкаspot), за который проголосовали за
CREATE TABLE parking_spots_votes(
vote_id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
parking_spot_id INTEGER DEFAULT NULL,
key parking_spot_id_fk (parking_spot_id),
FOREIGN KEY (parking_spot_id) REFERENCES parking_spots(id),
uploaded_by_user_id INTEGER DEFAULT NULL,
key user_id_fk (uploaded_by_user_id),
FOREIGN KEY (uploaded_by_user_id) REFERENCES parking_angel_users(id),
vote_casted_user_id INTEGER DEFAULT NULL,
key vote_cast_user_id_fk (vote_casted_user_id),
FOREIGN KEY (vote_casted_user_id) REFERENCES parking_angel_users(id),
vote_type INTEGER NOT NULL
)
. Тип голосования может быть 0 за отсутствие голосования, 1 за голосование "за", 2 за понижение голосов
, теперь у меня небольшая логическая проблема.
например
- что, если пользователь уже проголосовал на parking_spot
Как проверить, проголосовал ли уже пользователь и имеет ли онне вставляй потом, но если он потом не проголосовал за возврат уже.
Как мне обновить счет пользователя (uploaded_by_user_id).плюс один за голосование против и минус один за голосование против.
так что общий поток будет,
Пользователь нажимает на голосование, сервер проверяет, был ли уже проголосован, если так, то вы не можете голосовать снова.если нет, то voice_casted_user_id = текущий пользователь, parking_spot_id = текущая информация, uploaded_by_user_id = человек, который загрузил информацию, тогда оценка uploaded_by_user будет обновляться в зависимости от типа голосования.
Я использую Java-сервлет с подключением JDBCв базу данных MYSQL.
Есть идеи для меня?