对于依赖于投票等因素的评级系统,他们如何存储声誉?例如。计算器。
实现这样的事情最有效的方法是什么?
答案 0 :(得分:3)
有一种方法可以解决所有情况,而不仅仅是这个。
首先,您了解您的数据以及它的使用方式比任何人都好。您必须在设计中应用这些知识。这就是为什么几乎每个数据库问题都正确回答“依赖”,就像这个问题一样。
你在其他时间交易时间。
您可以花时间保持每次更改的计算值。选项2。
或
每次需要将值返回到报表/页面/服务调用时进行计算。选项1。
如果您对该值进行了大量查询,但它只是经常更改...您真的只想缓存该值。您将存储计算而不是不断重新查询。
如果它变化很快,但你每天报告一次......维持该值所需的所有开销和它所引入的争用(读取:可扩展性限制)比每天计算一次更加繁重。
在该示例中,您有一组定义明确的有限操作,这些操作可能会影响用户的代表。这些枚举函数中的每一个都可以轻松地调用一个函数,该函数获取user_ID和数量并更新该列/属性。这些行动的发生频率低于报告的数量;因为读取超过写入...
对您来说重要的是什么? 这也取决于对你来说重要的事情。
让我们说在SO的情况下,他们想要预先计算数字,但报告一个稍微不正确的数字的惩罚很低。 (你觉得Jon Skeet为最近的一个upvote出汗了吗?)但是这些更新确实减慢了网站的速度......例如。由于页面加载速度是业务值高于其他所有值的,因此您可以违反上述准则。
同样,只有您可以决定您的业务的真实性。
答案 1 :(得分:2)
2号 - 为什么将其链接到页面加载?