При разработке простой системы голосования в php нужна помощь - PullRequest
0 голосов
/ 26 марта 2011

Мне нужно настроить простую систему голосования для моей заявки. Моя заявка состоит из опубликованных статей и комментариев. Я хотел бы добавить возможность голосования как к статьям, так и к комментариям, и в то же время иметь возможность сортировать комментарии по количеству проголосовавших и т. Д.

У меня есть следующие ограничения, т. Е. Приложение требует, чтобы пользователи вошли в систему - только зарегистрированные пользователи могут голосовать, во-вторых, пользователь может голосовать за элемент только один раз. Пользователи могут повысить или понизить голос или отменить сделанное ими голосование.

Каким будет приличный дизайн стола для этого, плюс мне нужно, чтобы решение было масштабируемым. Спасибо за совет

Ответы [ 2 ]

2 голосов
/ 26 марта 2011

Я думаю, что я бы пошел с таблицей соединений между users и articles таблицами:

users_articles
  - article_id
  - user_id
  - score
  - date

Со следующими примечаниями:

  • article_id - это внешний ключ к статье, за которую проголосовали
  • user_id - это внешний ключ пользователя, проголосовавшего
  • score равно +1 или -1 в зависимости от голосования
  • первичный ключ находится в двух столбцах article_id, user_id.
  • пользователь, голосующий за статью, означает вставку одной строки в эту таблицу; отмена голосования означает удаление этой строки (или выставление 0 баллов, если вы хотите отслеживать факт, за который проголосовал пользователь)


Это для голосования по статьям.
И я бы сделал еще одну таблицу users_comments для голосов в комментариях.

0 голосов
/ 27 марта 2011

Вы можете извлечь этот ответ здесь из моего вопроса .Посмотрите на v1.6 для окончательного ответа (опубликовано как обновление в вопросе).Он моделирует пользователей, комментарии и оценки, а также некоторые ограничения, которые вы ищете.

Если у вас есть какие-либо вопросы о модели, пожалуйста, дайте мне знать, была проделана большая работа по этому вопросу, которая не была опубликована на SO из-за объема выполненной работы.

Вы можететакже посмотрите на Доска объявлений - Оптимизация базы данных .

...