Лучший способ проверить, нравится ли пользователю сообщение? - PullRequest
0 голосов
/ 01 июля 2018

Я делаю простую кнопку «Мне нравится», которая, когда пользователь, вошедший в систему, нажимает на нее, добавляет +1 «нравится» в столбец «Нравится» этого сообщения в строке с соответствующим идентификатором.

Что мне еще нужно сделать, так это функция, которая проверяет, понравился ли (вошел в систему) пользователю пост, когда он заходит на страницу с помощью кнопки «Нравится», поэтому кнопка «Нравится» может быть выделена правильно, чтобы избежать один и тот же пользователь может любить более одного раза.

Мой вопрос: каков наилучший способ добиться этого? Все, что я могу обдумать, - это сделать столбец («понравившиеся посты») в базе данных пользователей, который хранит идентификаторы понравившихся им сообщений в одной строке, например «.122354435..3453463423..3242343». с точками, разделяющими их, а затем, чтобы проверить, понравился ли им пост, я бы использовал параметр LIKE в mysqli, например ... WHERE 'likedposts' LIKE '%.3242343.%.

Но все это просто кажется слишком сложным и настолько неудобным, что мне стало интересно, есть ли более простой, более "компактный" способ сделать это.
Заранее спасибо, надеюсь, я все объяснил достаточно хорошо.

1 Ответ

0 голосов
/ 01 июля 2018

Это традиционное отношение «многие ко многим» .

Создайте новую таблицу (например, user_likes), где у вас есть столбец, который ссылается на таблицу пользователя как внешний ключ, и столбец, который ссылается на таблицу сообщений как внешний ключ.

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

...