Голосовать за / нравится система для сообщений, использующих MySQL
Я искал это в stackru, и хотя я нашел что-то в этом духе, я не нашел ничего, что действительно помогло бы мне, поэтому я сам задам вопрос.
Поэтому я пытаюсь внедрить кнопку "Мне нравится" для изображений на моем сайте. Но у меня есть небольшая проблема, чтобы понять, как это происходит.
До сих пор у меня есть это на стороне SQLI вещей:
CREATE TABLE if not exists `likes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`image_id` varchar(300) NOT NULL,
`liker_username` varchar(50) NOT NULL,
`liked_unliked` enum('0','1') NOT NULL, DEFAULT '0'
PRIMARY KEY (`id`)
);
куда id
идентификатор подобного,image_id
идентификатор понравившегося изображения,liker_username
имя пользователя, нажимающего кнопку "Мне нравится",liked_unliked
является ли этот пользователь понравившимся изображением (1 для избранного, 0 для не понравившегося [чтобы пользователи голосовали только один раз)).
У меня есть image_id, уже сохраненный в photos
Таблица.
Мне сказали, чтобы поставить уникальный индекс на liker_username
а также image_id
чтобы пользователи не любили изображение несколько раз, но я просто хочу получить второе мнение.
Итак... то, что я до сих пор даже правильно? Как я уже сказал, я пытаюсь сделать так, чтобы пользователи могли нажать кнопку "Нравится" и понравиться изображение, но только один раз. Любая помощь приветствуется. Спасибо
1 ответ
Похоже, вы на правильном пути.
Как сказал другой пользователь, вы можете рассмотреть возможность users
таблицу с пользовательскими данными и идентификаторами, и поместите внешний ключ liker_user_id в ваш likes
Таблица. Ваш идентификатор изображения также может быть внешним ключом, а изображения хранятся в images
Таблица.
Вы можете рассмотреть возможность предоставления анонимных голосов, по одному на каждый i-адрес, добавление ip-адреса в БД, если пользователь не вошел в систему. Вы можете получить ip-адрес пользователя с помощью:
$_SERVER['REMOTE_ADDR'];