PHP/MySQL 多票

标签 php mysql

您好,我的网站上有投票系统,但我想禁用用户的多次投票。如果用户投票,他/她不能再次投票。这是我拥有的一种解决方案,但在我看来不是很好。

我在用户表中创建了一个列: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/

相关文章:

php - 写不工作

php - 如何使用 mpdf php 类定义表格的高度

php和MySQL登录系统

php - 如何在 laravel 5.3 中忽略 laravel 多个唯一列中的软删除

php - 无法通过 PDO 插入 mysql

mysql - wordpress 上的负载平衡 - 2 LAP Web 服务器 1 Mysql DB - 如何?

java - 谷歌云数据处理中谷歌 JDBC 驱动程序的 ClassNotFoundException

php - 日期 toIsoString PHP

javascript - 当选择 “radio buttons” 的一个选项时如何禁用其他选项?

mysql - MySQL 的 SQL 管理器 - 选择插入空行