您好,我的网站上有投票系统,但我想禁用用户的多次投票。如果用户投票,他/她不能再次投票。这是我拥有的一种解决方案,但在我看来不是很好。
我在用户表中创建了一个列:users_avoted
,我将在其中存储他/她像 tihs 一样投票的文章的 ID:
1|2|5|6
由此我可以检查用户是否已经投票。但问题是会有很多文章,所以 VARCHAR(255)
将不足以存储所有这些 ID。还有其他解决方案吗?
谢谢
最佳答案
不要那样去规范化它。只需有一个包含两列的表 userVotes,其中包含 UserID 和 ArticleID 的复合键。
示例数据:
userid | articleid
1 1
1 2
1 67
2 1
这比类似的东西要好
userID | articleID
1 1,2,67
这就是您的建议。请不要这样做,并保持规范化,除非你每次查询都想做体操。详细地说,实现您的建议会破坏使用 RDBMS 的目的,以便“欺骗”一个特定的查询。
关于PHP/MySQL 多票,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15095569/