Я работаю над небольшой функцией в веб-приложении Java, которая очень похожа на функцию голосования вверх / вниз здесь, на stackoverflow.com. У меня есть база данных, которая выглядит следующим образом:
VOTE TABLE
id (bigint): surrogate primary key
question_id (bigint):: the question the vote is for
vote_type (int): whether the vote is up or down
user_id (varchar): the username of the person who the vote belongs to
Я хочу убедиться, что в БД есть только один голос на человека на вопрос. Каков наилучший способ обеспечить это? Как обеспечить это с помощью схемы базы данных, которую я описал выше?
В настоящее время у меня возникают проблемы, когда пользователь отклоняет два запроса на голосование, а затем база данных содержит 2 голоса «за» для этого пользователя, когда у него должен быть только один голос.