与StackOverFlow上的类似,我需要实现一种方式,让人们在像网站这样的论坛中投票和投票。
然而,我们不会使用通用总分,而是显示“竖起大拇指”和“竖起大拇指”的总数。过滤目的需要总分,例如“按最高评分排序”,“仅显示评分+3”
最佳实施策略是什么?
正如用户建议的那样,我也会存储投票的信息
答案 0 :(得分:3)
您需要存储评级(评论ID,用户ID,投票价值),以便您可以计算并停止重复投票,但我强烈建议您在主评论实体上添加VotesUp和VotesDown字段。
为什么重复?速度。否则你将会做出令人厌恶的SUM-WHERE
语句,他们会将你的数据库服务器运行到地面。标题记录中的一些额外字节,您将能够对心脏的内容进行排序和过滤。
编辑:如果您还要在某些情况下按总分排序,则可能需要添加第三个字段(VoteTotal)。
编辑2:如果您能够将所有注释标题缓存在内存中,则复制毫无意义。虽然这是很多数据,但你需要大量的内存来有效地缓存它。如果你不是亿万富翁,我只是复制数据。
答案 1 :(得分:0)
一些很好的开源参考资料,但并非你要求的只是dotnetkicks
另请听听StackOverFlow podcast这个网站的创建者讨论他们如何制定他们的一些要求。如果您正在计划上述内容,则需要倾听。
然后,一旦你在那里,链接到像uservoice这样的服务会在你的开发早期给你一些有价值的反馈。