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






Это традиционный отношения "многие ко многим".
Создайте новую таблицу (например, user_likes), где у вас есть столбец, который ссылается на таблицу пользователя как внешний ключ, и столбец, который ссылается на таблицу сообщений как на внешний ключ.
В зависимости от используемой базы данных вы можете добавить третий столбец в качестве первичного ключа или использовать два столбца, которые у вас уже есть, как составной ключ.
можешь уточнить?
Что-то вроде этого? СОЗДАТЬ ТАБЛИЦУ user_likes (INT пользователя, INT сообщения, FOREIGN KEY (пользователь) ССЫЛКИ на пользователей (id), FOREIGN KEY (сообщение) ССЫЛКИ на сообщения (id));
Не делайте этого, просто используйте другую таблицу и свяжите ее с идентификаторами.