У меня есть веб-сайт, который должен включать лайки, в то же время не позволяя любому пользователю ставить лайк несколько раз. Я использую React, Express и MySql. На этом веб-сайте есть страница, где пользователь может просматривать все сообщения, где каждая запись включает: (1) сообщение, (2) пользователя, создавшего сообщение, и (3) сколько лайков может иметь это сообщение. Это была тривиальная команда SQL, в которой я выполнил следующий запрос:
SELECT users.username, posts.message, posts.likes
FROM users
INNER JOIN posts
WHERE users.user_id = posts.post_id
В моей текущей реализации у меня есть кнопка, расположенная в каждом сообщении, которая при нажатии будет связываться с моим бэкэндом для вставьте связанные user_id и post_id в мою таблицу лайков. Мое видение состоит в том, что если пользователю уже понравился определенный пост, то показать кнопку неприязни, а если пользователю не понравился пост, показать кнопку лайка.
Я знаю, что я справа отслеживать создание таблицы «лайков», поскольку у меня не может быть повторяющихся записей. Мне нужен запрос, в котором я могу получить список всех сообщений, которые понравились пользователю, а также тех, которые ему не понравились. Я знаю, что это можно получить с помощью ЛЕВОГО или ПРАВОГО СОЕДИНЕНИЯ между таблица «сообщения» и таблица «лайки». Тем не менее, с помощью этого списка результатов, как я могу различить guish, какие публикации понравились пользователю и те, которые ему не понравились, так что, когда я отображаю () в этом списке, я могу легко разместить кнопку «Нравится», если пользователю не понравился пост или непохоже, если пользователю не понравился пост?
Вот моя SQL схема:
Users Table (user_id, username, password) //Primary Key: user_id
Posts Table (post_id, message, likes) //Primary Key: post_id
Likes Table (user_id, post_id) //Primary Keys: user_id, post_id and Foreign Keys: user_id, post_id