Я думаю, у вас есть немного больше работы. Вы должны добавить в свою модель отношения «многие ко многим» между вопросами и пользователями, в которых вы помните, какой пользователь голосовал за какой вопрос и каким образом (вверх или вниз). После этого, когда вы выводите вопрос на экран, вы должны выбрать из этой таблицы голоса текущего пользователя, связанные с отображаемым вопросом.
Когда пользователь голосует за вопрос, вы должны добавить запись в соответствующую таблицу. Кроме того, при отображении вопроса, если пользователь проголосовал за (понижен), тогда вы должны стилизовать ссылку вверх (вниз) соответственно. И если пользователь снова попытается проголосовать, вы можете проверить его, прежде чем зарегистрировать голосование в базе данных, если пользователь уже проголосовал.
Может быть, это не самый быстрый способ сделать подобные вещи, но он дает вам максимальный контроль (позже вы можете отобразить подробную статистику о стиле голосования определенного пользователя, дате и времени, когда был отдан голос). , вы можете установить ограничение на количество голосов, которое пользователь может подавать в день и т. д.)