На моей странице есть система "нравится / не нравится".
Таблицы базы данных:
1.) Тот, который содержит ваши сообщения с уникальным идентификатором для каждого сообщения и идентификатором пользователя, который его создал (наряду с другой информацией, такой как контент, теги и т. Д.).
2.) Таблица вызвала лайки с, по крайней мере, следующими полями: ID, post_id (соответствует записи в таблице постов, которая понравилась или не понравилась), user_id (соответствует пользователю в таблице пользователей, которая оценила / не нравится), статус (0 или 1, 0 понравился пост, 1 не понравился пост).
Когда пользователю нравится публикация, вставьте строку в таблицу лайков со своим user_id и post_id, установите статус 0 (или просто оставьте пустым, потому что 0 по умолчанию). Когда пользователю не нравится сообщение, сделайте то же самое, но установите статус 1.
Таким образом, на странице поста вы можете получить количество всех пользователей, которым понравился или не понравился пост. На странице профиля пользователя вы можете получить все сообщения, которые пользователю нравятся или не нравятся. Вы также можете оценивать посты, по которым больше всего нравится или не нравится. Или даже ранжируйте конкретных пользователей по тем, кто разместил контент с наибольшим количеством лайков или антипатий.
Не разрешать пользователям нравится / не нравится сообщение, если у него уже есть запись в базе данных. (В основном просто проверьте количество записей в таблице лайков, где post_id равен текущему сообщению, а user_id равен зарегистрированному пользователю)
Перекрестная ссылка на таблицу постов, чтобы получить user_id автора поста. Если автор сообщения user_id совпадает с пользователем, вошедшим в систему, или пользователь НЕ вошел в систему, не разрешайте им голосовать.
Запросы для выполнения всего этого просты (просто SELECT * или SELECT user_id), но это основная идея.