我正在开发一个应用程序,该应用程序在用户最后一次出现时具有与 SO 类似的逻辑。我遇到了一个概念问题,我希望你们中的一些大师可以帮助我。
所有活动都记录在数据库中的 ActivityLog 表中
当登录用户访问该站点并创建一个新会话时,我会使用 UserID 和一些非常通用的信息更新活动日志。当他们创建新记录、更新个人资料等时也会发生同样的事情。
我遇到的问题是这个。
如果我使用最近的活动项目,然后导航到我的个人帐户页面,“最后一次看到”显示为 1 秒前,因为我刚刚在会话开始时点击了数据库……这不好,因为我想看看什么我在那里是“最后一个”,而不是“现在”在那里。
但是,如果我Skip(1).Take(1)
用来获取数据库中的第二条记录,那么当其他人查看我的个人资料而我可能“刚刚”登录时......他们会看到我是在一周前而不是今天。
你会用什么样的逻辑来得到你的蛋糕并吃掉它?
我正在使用 ASP.NET MVC2 和 Linq to SQL,但我认为这个问题与语言无关。