我已经在AppEngine上编写了一个社交网络应用程序,我即将添加的功能是能够查看过去一个月中哪些人查看了您的个人资料(就像您在LinkedIn上所做的那样)。
以下是我考虑实现代码的方式:
- 我将使用新的实体类型(让我们称之为ViewerTracker)来跟踪查看配置文件的时间,其中包含3个主要值:
1)正在查看的配置文件的ID,2)正在查看的配置文件的ID,以及3)查看的日期时间。
- 每当有人查看个人资料时,我都会检查Viewertracker,看看之前是否有人查看了个人资料,如果有,我将只更新ViewerTracker对象的日期时间。如果先前未查看该配置文件,我将创建一个新的ViewerTracker实体来记录该事件。
- 我还将跟踪在一个单独的实体类型中过去30天内查看每个配置文件的唯一身份的人数(让我们称之为ViewerCount)。我将编写一个cron作业,每天清除超过30天的ViewerTracker对象,并且需要减去从ViewerCount对象中删除的旧ViewerTracker元素的数量。
但是,当我删除旧的ViewerTracker实体时(基于对datetime值的查询),我需要准确知道已删除的实体数量,以便我可以从ViewerCount对象中减去该数字。有没有办法确切地知道删除操作删除了多少实体?我对这个问题的处理方法是否正确,或者有更好的方法吗?