我在使用 PHP 实现 +1/-1 投票系统时遇到了一些问题,它应该与 SO 投票系统有些相似。平均而言,每个项目将获得约 100 到 1,000 票,并且会有很多人观看。
我不知道我是否应该使用:
- 专门用于投票的数据库表,其中包含用户 ID 和他们的投票...将他们的投票存储为 bool 值,然后在 MySQL 中计算投票的“总和”。
- “项目”表中的文本字段,包含已投票的 uid(在序列化数组中),以及包含投票总和的数字字段。
- “item”表中的一个数字字段,包含投票的总和,然后将用户是否投票存储在文本字段中(带有投票 ID 的序列化数组)。
- 完全不同的东西(请发表更多想法!)
最佳答案
我可能会选择上面列出的选项 3。通过将总票数作为项目表中的另一列,您可以在不执行任何更多 sql 查询的情况下获得项目的总票数。
如果您需要存储哪个用户对哪个项目投票,我可能会创建另一个表,其中包含 item
、user
和 vote
。 item
为itemID,user
为用户ID,vote
为+
或-
取决于它是赞成票还是反对票。
我猜您只需要在用户登录时访问此表,以向他们显示他们投票的项目。
关于php - 投票系统问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5526467/