具有上下投票的投票系统的数据库结构

Zar*_*doz 17 sql database schema voting-system

我将为Web应用程序创建一个投票系统,并想知道在(SQL)数据库中存储投票的最佳方法.

投票系统与StackOverflow类似.我现在在思考是否应该在不同的表格中存储上下投票.这样就可以更容易地计算所有的投票数.投票.另一方面,我必须查询两个表以查找用户或投票项目的所有投票.

另一种方法是使用布尔字段的一个表,该字段指定此投票是投票还是投票.但我猜计数上升或下调的选票相当慢(当你有很多选票时),布尔字段上的索引(据我所知)并没有多大意义.

你会如何创建数据库结构?一两张桌子?

Jul*_*rra 15

关于评论,我们找到了最适合Zardoz的解决方案

他不想总是把票数和需要尽可能多的细节计算在内.所以解决方案是两者的混合.

  1. 在考虑的表中添加一个整数字段来存储投票计数(确保不会出现溢出).
  2. 创建其他表来记录投票(用户,帖子,日期,上/下等)

我建议在日志表中插入/删除/更新投票时使用触发器自动更新"投票计数字段".


Gab*_*oli 12

如果您的投票只是上/下,那么您可以创建一个votes链接到帖子的表,其值为 1或-1(向上/向下).这样你就可以sum一气呵成.