php - 使用Mysql + PHP实现的投票系统(带账号)性能

标签 php mysql voting-system

我目前正在创建一个投票系统,其中包含好的和坏的评论选项。基本上,这个想法就像 facebook 的想法,但有一个糟糕的评论选项(或更多)。这是表结构

id | comment_id | voter_id | voter_option 

所以,一旦用户投票了,就会在mysql数据库中以上述格式存储一条记录,我之所以这样做是因为我不想让用户重新投票,想记录他们的内容喜欢/不喜欢。

我的问题是,我认为,如果我的网站上有 10,000 条评论,并且每条评论获得 1,000 票,那么我的数据库就会变得非常大,是否有什么好的方法(可能是示例)来防止数据库变得太大?或者我需要为我的案例中的每条评论创建一个表格,在此先感谢。

最佳答案

您的评论表是什么样的?如果有很多帖子,数据库只会变大,如果您正确查询并且您的表大小合理,则表中的 10,000 个条目对于 mysql 来说是 child 游戏。

在性能方面,当有人喜欢/不喜欢评论时,您可以计算所有投票并将该值存储在评论行中,这样当您查询评论时,您将获得它最后知道的喜欢/不喜欢计数,并且不必在每次查询评论时都进行计数。

编辑:我应该补充一点,确保你的索引是整数(根据它们的列名判断)并且你使用外键来限制数据。使用外键,您可以保持表的清洁,例如,如果有人删除了一条评论,您可以告诉您的表根据该 ID 删除级联,以便删除评论,该评论的所有投票都会从其他评论中删除 table 。 http://en.wikipedia.org/wiki/Foreign_key

关于php - 使用Mysql + PHP实现的投票系统(带账号)性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6035070/

相关文章:

php - 个人资料页面网址,如 facebook 个人资料 -php

php - 从已有的图像生成图像?

javascript - 如何在 PHP if/else 语句中调用 JavaScript 文件?

mysql - 投票系统,关系数据库,SQL 查询

html - 我如何设定一个人可以再次投票的时间?

php - 奇怪的 PHP 日期增量

php - Magento 中的 isBundle()?

MySQL InnoDB 自愿事务成为死锁受害者

php - codeigniter result_array 无法在真实服务器上运行

mysql - 尝试构建类似选择的 MySQL 查询失败