场影
用户的学生某门课的分数需要由学习时长计算得出,计算时,还需要有计算规则,某门课程的规则有可能不一样,比如学习一分钟算多少时间,满分是多少分等..
方法一
收到学生的学习时长时,就计算分数,好处就是分数有时效性,学生时就能反映课程的分数,缺点就是一但同时学习的人数上升到某个阶段,数据库的压力就会变成系统的瓶颈.
方法二
收到学生时长时,先不计算分数,统一在某一时刻计算学生的成绩,好处就是数据库的实时压力会小很多,但是实效性不高,一般需要第二天才能看到分数。
方法三
针对以上两个方法的缺点,可以增加一个更新时间,再加一个定时任务,每次计算分数的时候,只计算已经有更新的用户,没有更新的用户不计算,计算完成后,会更新分数,更新分数时,会比较是否有较新的更新,如果有,就不再计算,如果没有,就计算分数,这样不浪费计算资源,又能保证一定的时效性..