我正在研究與上次用戶上次見面時類似邏輯的應用程序。我遇到了一個概念性問題,我希望你們中的一些人能夠幫助我。如何在堆棧溢出時編寫「上次查看」邏輯
當登錄用戶點擊該網站,一個新的會話創建的所有活動被記錄在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