Лучший способ проверить, лайкнул ли пользователь сообщение?

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

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

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

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

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

Lawrence Cherone 01.07.2018 18:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
59
1

Ответы 1

Это традиционный отношения "многие ко многим".

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

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

можешь уточнить?

40oz 01.07.2018 22:44

Что-то вроде этого? СОЗДАТЬ ТАБЛИЦУ user_likes (INT пользователя, INT сообщения, FOREIGN KEY (пользователь) ССЫЛКИ на пользователей (id), FOREIGN KEY (сообщение) ССЫЛКИ на сообщения (id));

40oz 02.07.2018 00:12

Другие вопросы по теме