使用MySQL的帖子投票/喜欢系统

时间:2014-05-27 17:27:45

标签: php mysql

我在stackoverflow上搜索了这个,虽然我发现了这些内容,我没有发现任何真正有用的东西,所以我会自己提出这个问题。

所以我正在尝试在我的网站上为图像实现类似的按钮。但是我在弄清楚它是怎么回事时遇到了一些麻烦。

到目前为止,我在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是其中的id, image_id是所喜欢图片的ID, liker_username是用户点击“赞”按钮的用户名, liked_unliked是该用户是否喜欢该图片(1表示喜欢,0表示不喜欢[确保用户只投票一次]。)

我已将image_id存储在photos表中。

我被告知要在liker_usernameimage_id上添加一个唯一索引,以防止用户多次喜欢图像,但我只是想要第二个意见。

所以......到目前为止,我的所有内容是否正确?就像我说的那样,我试图得到它,以便用户可以点击类似按钮并像图像一样,但只有一次。任何帮助表示赞赏。感谢

1 个答案:

答案 0 :(得分:1)

看起来你正走在正确的轨道上。

与其他用户说的一样,您可能会考虑使用包含用户数据和ID的users表,并将外键liker_user_id放在likes表中。您的图像ID也可以是外键,图像存储在images表中。

如果用户未登录,您可以考虑允许匿名投票,每个地址一个,将IP地址添加到数据库。您可以通过以下方式获取用户IP地址:

$_SERVER['REMOTE_ADDR'];