不平等的投票制度
Voting system with unequal votes
我打算在我的webapp (reactJs, flux, nodejs + express server)中实现投票系统
许多用户(成千上万)可以投票,他们的投票是不平等的。从1到100。他们可以投票支持或反对。我需要对数据库中的所有选票进行算术平均。我有上千页关于投票系统的资料。我如何实现它?我想,我可以存储所有的选票从每个页面在一个单元格的数据库表。当我需要在前端渲染平均投票时,我将检索json对象,如:
{ page1: [1,22,5,7,32,...~1000 more numbers] }
,并在客户端使用js计算算术平均值。
这是个好主意吗?也许还有别的办法?
在这种情况下不会丢失谁投了什么票之间的关系?
我更愿意将投票存储在引用用户投票、投票元素和投票值的多对多表中。
当您想要显示平均值时,一个快速的Sql查询可以返回算术平均值。
但除此之外,你可以知道更多关于用户投票行为的信息(总是投票最大值或最小值的用户,在某些项目上投票的用户,而在其他项目上做相反的用户,投票某些项目但不投票其他项目的用户……和一个巨大的等等)。
考虑到这些数据,您可以实现比简单平均值更可靠的投票值…但这完全是两码事。
如果按照您所描述的那样存储每个页面的所有投票,那么您可能会在跟踪谁投票了谁没有投票时遇到麻烦。我建议使用一个简单的映射表。
Table 1:
UserID (int), NumberOfVotes (int)
Table2:
PageID (int), UserID (int), ForOrAgainst (binary 1=for, 0=against)
然后计数投票,你可以简单地连接表和SUM(NumberOfVotes),并减去SUM(NumberOfVotes)对给定的PageID。
下面是一个SQLFIDDLE,它对给定页面的投票进行求和。注意,您还需要第二个查询(或两个子查询)来获得AGAINST的投票。
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 不能从angular2中的子组件指定父组件中的数组
- Javascript:selenium Web驱动程序isDisplayed()不工作
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 监视函数从服务返回不起作用,但作用域函数起作用
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- Javascript循环不会自我更新
- 幻灯片滚动javascript不起作用
- 表追加而不附加最后一个元素
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- Node.js v6.2.0类扩展不是函数错误
- 直接下载文件,而不是从window.open(url)
- 如何在不创建用户帐户的情况下,允许每人(电脑/手机)在网站上的1篇帖子上只投1票
- 两个不可变的列表 - 如何使三重平等工作
- 纯HTML与React.相同的内容不能平等呈现.为什么?
- 不平等的投票制度
- 剑道网格滤波器与“;包含“;但不是平等