У меня есть реляционная база данных и система потоков / комментариев. У меня возникают проблемы с поиском способа решения проблемы с голосованием, поскольку страница должна быть обновлена, чтобы сервер мог заметить любые изменения.
Я создал новую таблицу UPVOTESTHREAD, которая состоит из двух внешних ключей, идентификатора пользователя и идентификатора потока и первичного ключа, который является комбинацией двух. Единственный способ, которым я мог бы вставить это, если я отправлю некоторые данные POST. Я боюсь, что это будет неуклюже для пользователя, и это также будет означать, что пользователю придется заглянуть туда, куда он только что смотрел. Это не может быть правильным решением, верно? Есть ли лучший способ сделать это?
Да, есть лучшее решение. Это называется AJAX. Он отправляет сообщение или запрос на получение на сервер и получает выходные данные без перезагрузки страницы.
Сценарий на сервере, который получает запрос ajax, может (в вашем случае) увеличить счетчик голосов в БД.
Скрипт (обычно PHP-) также может выводить что-то (обычно json или код состояния), которое получит обработчик успеха функции ajax. Затем вы можете изменить свою страницу с помощью JavaScript соответственно. В вашем случае вы можете получить текущий подсчет голосов и обновить счетчик рядом с кнопкой upvote, если он есть.
Других решений пока нет …