我正在研究具有与用户上次见面的应用程序相似的逻辑的应用程序。我遇到了一个概念上的问题,我希望你们中的一些大师可以帮助我。

所有活动均在数据库中的ActivityLog表中记录

当登录的用户命中该站点并创建新的会话时,我将使用用户ID和一些非常通用的信息更新活动日志。当他们创建新记录,更新其个人资料等时,也会发生同样的事情。

我遇到的问题是。

如果我使用最新的活动项目,请导航到我的个人帐户页面,“最后一个看见”显示为1秒前,因为我只是在会话开始时击中DB ...这不好,因为我想看看什么我是“最后”,而不是当我在那里时“现在”。

但是,如果我使用 Skip(1).Take(1) 要在数据库中获取第二个记录,然后当其他人查看我的个人资料时,我可能会“只是”签名...他们会看到我在一周前而不是今天说我说的。

您将使用什么样的逻辑来吃蛋糕并吃掉它?

我将ASP.NET MVC2和LINQ用于SQL,但我认为这个问题更不可知。

有帮助吗?

解决方案

听起来您只能显示当前用户的第二个最新记录,并且所有其他用户都显示了最新记录。

其他提示

我要做的事情(仅仅避免了大逻辑循环)就是添加两个字段。 current_seenlast_seen. 。登录移动 current_seenlast_seen 并设置 current_seen 到当前的时间戳。然后显示 last_seen 就像他们的“最后在XX/XX/XXX上看到”。

一个值得一看的地方是OSQA的源代码(开源问答系统) -

http://www.osqa.net/

是的,它看起来很像Stackoverflow(至少可以说)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top