![]() |
1
2
就个人而言,我将使用第二个选项来处理这个问题。 第一个选项限制了功能,所以我马上就取消了。 第三个选项在性能方面效率低下-很可能您将获取该数字 很多 如果您的程序类似stackoverflow,那么可能会在每个pageview/action中多次显示(计算)这个数字。 对我来说,第二个选择是一个不错的混合解决方案。通常,我 憎恨 在我的系统中有重复的数据(操作和点,而不是一个或另一个),但在本例中,整数字段是每个用户节省的相当小的空间。 许多 不必要地重新计算值的时间。 有时,我们必须为了性能而交换数据存储空间,反之亦然,我想说2是一种非常有益于应用程序的权衡。 |
![]() |
2
0
这在很大程度上取决于您将要面对的预期计算的数量。事实上,很明显,出于性能原因,我假设使用了一种类似于1)方法的方法。 这还可以防止在因素发生变化时出现数字跳变(例如,已删除的奖励积分的项目,或在此处成为社区wiki的答复,积分规则的变化,外部操作(例如在此处加入另一个帐户等)。 如果需要重新计算解决方案(2),则可以在每次可能发生点修改时清除该值(将其设置为空,这意味着“脏”),实现“智能”缓存,并在该值为空时重新计算,否则使用缓存。您还可以(作为非显式事件发生时的自我纠正措施)在一小时、一天或您认为的任何时间后清除值,以便在特定时间后强制重新计算,而不受“脏”状态的影响。 |
![]() |
3
0
我会选择1和2(每分钟左右在cron中运行一次)。 以便: -额外的字段将作为点数量的缓存。 -计算点的函数可以是一个单独的SQL查询,它可以一次重新计算所有用户的点,以获得一定的速度。 我认为每次接收到点时重新计算字段都是一种过度杀伤力。 |
![]() |
4
0
就我个人而言,我会使用第一个选项,并添加一个“操作”表来跟踪您的活动历史。 当用户做了一些好的事情,他们会在“actions”表中得到一个条目,其中包含该操作和一些点值。点值可以来自另一个表或某个配置文件。同样的值被添加到用户记录中。 在任何时候,您都可以总结操作并获得用户总数,但是对于性能而言,在添加操作记录时简单地更新就足够简单了。 |
![]() |
5
0
你的积分系统有多简单? 我认为某种日志记录/日志记录很好,这样您就可以在所有用户中每天/每周/每月跟踪活动。 |
![]() |
6
0
退房 http://code.google.com/p/userinfuser/ 它是开源的,允许您向应用程序添加点数和徽章。它有Java、Python、PHP和Ruby绑定。 |
![]() |
hello_programmers · Mysql从其他表输出一列 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
![]() |
Popo · Sql查询:返回数据库中不可用的where条件 2 年前 |
|
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 2 年前 |
|
Kugelfisch · 用php为数据库加密数据 2 年前 |