题
我正在研究具有与用户上次见面的应用程序相似的逻辑的应用程序。我遇到了一个概念上的问题,我希望你们中的一些大师可以帮助我。
所有活动均在数据库中的ActivityLog表中记录
当登录的用户命中该站点并创建新的会话时,我将使用用户ID和一些非常通用的信息更新活动日志。当他们创建新记录,更新其个人资料等时,也会发生同样的事情。
我遇到的问题是。
如果我使用最新的活动项目,请导航到我的个人帐户页面,“最后一个看见”显示为1秒前,因为我只是在会话开始时击中DB ...这不好,因为我想看看什么我是“最后”,而不是当我在那里时“现在”。
但是,如果我使用 Skip(1).Take(1)
要在数据库中获取第二个记录,然后当其他人查看我的个人资料时,我可能会“只是”签名...他们会看到我在一周前而不是今天说我说的。
您将使用什么样的逻辑来吃蛋糕并吃掉它?
我将ASP.NET MVC2和LINQ用于SQL,但我认为这个问题更不可知。
解决方案
听起来您只能显示当前用户的第二个最新记录,并且所有其他用户都显示了最新记录。
其他提示
我要做的事情(仅仅避免了大逻辑循环)就是添加两个字段。 current_seen
和 last_seen
. 。登录移动 current_seen
到 last_seen
并设置 current_seen
到当前的时间戳。然后显示 last_seen
就像他们的“最后在XX/XX/XXX上看到”。
不隶属于 StackOverflow