哪个更适合投票功能?

3
哪种系统最适合用于投票功能,为什么?
  • 将投票分别放入数据库表格中,在需要时计算平均值
  • 每个产品只有一行。当新投票到达后,从数据库中获取该投票,重新计算并更新记录。例如,我们有一个产品1的投票记录。它的投票总数在数据库中是326,有45人已经投票。然后我们收到了一个新的投票,投票对象是产品1。我们从数据库中取出记录,然后执行以下操作:

(326 + 4) / (45 + 1)

然后再次将结果330和46作为投票结果保存到数据库中。

我总是选择第一种选项,但我想知道其他人都在做什么。

3个回答

3

嗯,这取决于您想对投票的额外信息做什么。

如果您想了解投票趋势(平均值是上升还是下降)或者想知道投票是相对较旧/新的,或者哪个用户进行了投票(每人一票检查)等等,您需要将每个投票存储在单独的表中。

如果您只关心最终结果,那么第二个选项要更有效率。


1
如果您想防止人们投票两次,无论如何都需要采用“每个投票一行”的方法,因此我建议选择第一种选项。
第二种选项在性能方面可能更好 - 但如果这曾经成为问题,使用缓存机制很容易解决。

0

有很多因素需要考虑。您是否需要防御针对应用服务器的攻击并修改投票计数?您是否关心人们的选票可以被发现?您是否担心锁相关的性能问题?所有这些因素都会影响决策,并且这些答案根据具体情况而大不相同。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接