как сохранить голосование пользователей за комментарий к MySQL через php? - PullRequest
1 голос
/ 26 июля 2010

Как сохранить голосование пользователей за определенный комментарий?Например, если кому-то нравится комментарий, размещенный на сайте, он / она нажмет кнопку (+) или другим способом - кнопку (-).Как я могу сохранить эту информацию в mysql, чтобы, когда пользователь вернулся на сайт, я мог показать свой голос в комментарии?Что-то вроде комментария на Facebook, как система.Должен ли я создать новую таблицу MySQL для записи их всех?Предполагая, что пользователь уже зарегистрирован.

моя текущая таблица комментариев

id | date | userid | page | comment |

Я ожидаю что-то вроде

$username - $date
$comment <no.of likes> likes, <no.of hates> hates.

1 Ответ

2 голосов
/ 26 июля 2010

Вы описываете отношения многие ко многим.Вам понадобится промежуточная таблица между пользователями и комментариями, поскольку любой пользователь может голосовать за любой комментарий, а любой комментарий может иметь голоса от любых пользователей.Это может быть что-то вроде этого:

user_id | comment_id | direction

Если вам не нужно хранить какие-либо данные о том, кто за что проголосовал, то вы можете просто добавить столбец score втаблица комментариев, которая увеличивается или уменьшается при голосовании пользователя.Вы также можете сделать и то, и другое, если вы хотите быстро получить оценку комментариев, когда они отображаются, но сохранить информацию о том, кто голосовал за что позже.

edit:

Как после того, как мысль, вы можете избежать столбца score.Вы можете столкнуться с ситуацией, когда один пользователь может голосовать за комментарий более одного раза, если вы не отслеживаете, за какие комментарии этот пользователь уже проголосовал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...