我正在研究与上次用户上次见面时类似逻辑的应用程序。我遇到了一个概念性问题,我希望你们中的一些人能够帮助我。如何在堆栈溢出时编写“上次查看”逻辑
当登录用户点击该网站,一个新的会话创建的所有活动被记录在ActivityLog数据库中的表
,我更新活动日志与用户名和一些非常通用的信息。同样的事情发生时,他们创建一个新的记录,更新他们的个人资料等。
我遇到的问题是这样的。
如果我使用最近的活动项目,然后导航到我的个人帐户页面,“Last Seen”显示为1秒前,因为我只是在会话开始时击中了分贝......这不好,因为我希望看到我在那里“最后”,而不是当我“现在”在那里时。但是,如果我使用Skip(1).Take(1)
获取数据库中的第二条记录,那么当其他人查看我的配置文件,而我可能已经“刚刚”登录...他们会在一周前看到我说的而不是今天。
你会用什么样的逻辑来获得你的蛋糕并且吃它呢?
我正在使用ASP.NET MVC2和Linq到SQL,但我认为这个问题是更多的语言不可知论者。
将'current'和'last'放在用户表中以及保留一个活动日志会更简单和更少的系统开销?这听起来像更多的工作,因为我必须维护两个记录位置。我使用活动日志对于其他的东西,所以我不想删除它 – 2010-07-06 18:20:50
也,因为我正在使用LINQ to SQL与IQueryable存储库层,我不认为从活动日志中检索数据将是即使日志变大,系统密集程度也会太高。搜索基本上还有一个OrderBy和一个Select Top 1(或Second) – 2010-07-06 18:22:29
也......还有......只是提到,我认为这可能是迄今为止最简单的答案......关于为当前用户显示SECOND和为所有o显示FIRST的部分用户。 – 2010-07-06 18:26:54