Нравится и не нравится Система для сообщений - PullRequest
0 голосов
/ 24 августа 2011

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

Ответы [ 2 ]

3 голосов
/ 24 августа 2011

Хотя принимать решения в креслах сложно, вот мои идеи:

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

Другим способом было бы создать таблицу «Мне нравится» со столбцами post_id, user_id и score. Счет может иметь два значения: «1» или «-1». Все 3 столбца являются целыми числами. Когда пользователь нажимает «нравится», вы выполняете команду INSERT / UPDATE в строке с соответствием user_id и post_id.

Затем, чтобы увидеть итоговый балл за пост, вы делаете ВЫБОР СУММЫ (балл) ОТ этой_таблицы ГДЕ post_id =?.

С помощью этого второго метода, если вы хотите увидеть имя самого последнего кликера, вы можете добавить столбец отметки времени и выполнить поиск самой последней записи.

0 голосов
/ 24 августа 2011

Я бы создал таблицу со следующей структурой:

Таблица: Likes

  • PostId bigint
  • UserId bigint
  • Like bit (true, false)

Затем вместе установите PostId и UserId в качестве первичного ключа.Это предотвратит вставку в базу данных нескольких лайков / лайков для одного и того же поста.

В вашем коде проверьте, существует ли комбинация пользователь / пост, и затем переключите битовое значение, если оно есть, или установите битовое значениев true, если это не так.

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