跟踪用户点(如SO)

Jas*_*son 12 c# sql asp.net

我希望能够跟踪在我的网站上获得的用户积分.它不是真的像SO,但点系统是相似的,因为我希望每个用户都有一个总数,然后我想跟踪那些使他们达到总数的交易.

我应该在用户表中保留用户总数,还是应该在问题总数中拉出影响用户的所有交易,将它们相加并显示总点数?

似乎后者比完成总需要做的工作更多.但是,我再次强调在两个不同的地方保持相同数据(或多或少)的想法.

设计这个的正确方法是什么?

编辑:接受建议.使用和recalcs.我添加了一个RecalcDate列,如果它超过一天,它会被重新调整.每当用户做一些应该影响他们的总分的事情时,总数也会重新计算.

Nic*_*ver 9

当出现问题时,您需要有一种重新计算总计的方法,比如添加新功能,或者有人学会利用系统.您可以在用户表上保留当前总计和事务记录,以便在需要时重新计算该总计...并非每次需要显示该值时.

您不会将重复数据存储到审计历史记录中,唯一的重复是User表中一列中的一个数字...替代方案是用户利用系统,没有办法将其回滚.同样的事情发生在SO的早期,但他们有历史,可以毫不费力地重新计算总数.