7

我喜欢我正在设计的网站的徽章和成就的概念。它们已被证明可以提高使用/利用率,我认为这可能是我想要开发的应用程序的一大动力。

在高层次上,我可以想到 3 种方法来做到这一点。

检查满足 cron 工作要求的成员:这对我来说似乎不是一个好主意,随着成员的增长,cron 工作将需要越来越长的时间来完成。

每次完成可以满足徽章要求的操作时,检查是否应该授予任何徽章:这似乎是一个很好的方法,但似乎我可能会持续检查服务器已经获得奖励,或者用户甚至可能不接近。

每次用户完成一个可以获得徽章的操作时,检查他们是否已经拥有它,然后检查他们是否满足要求:这似乎也很好,但如果我将用户存储为一个对象,它看起来像它可能会变得非常大,或者我最终可能会一直非常努力地访问数据库以检查成就。

我有什么选择吗?我对一种或多种方法的担忧是否被夸大了?

编辑: 这是一个远没有我想象的那么有趣的问题,还是我问的时机不对?我有什么不清楚的地方吗?

4

1 回答 1

4

或者结合你的两个想法:

每次用户完成一个可以获得徽章的操作时,将用户放入一个列表(如果他不在那里)并使用 cron 经常处理这个列表。

这样,您不必在用户每次完成操作时都进行检查,并且可以使 cron 作业保持合理。

当然有变种:比如当列表达到一定数量时处理列表。或者在将用户添加到列表之前部分检查要求。

我想这将取决于用户数量、可以完成的可用操作等。

于 2011-02-15T23:31:01.307 回答