私は、ユーザーが最後に見られたときに関して SO と同様のロジックを持つアプリケーションに取り組んでいます。私は概念的な問題に遭遇しました。グルの何人かが私を助けてくれることを願っています。
すべてのアクティビティは、データベースの ActivityLog テーブルに記録されます
ログインしたユーザーがサイトにアクセスし、新しいセッションが作成されると、ユーザー ID と非常に一般的な情報でアクティビティ ログを更新します。新しいレコードを作成したり、プロファイルを更新したりするときにも同じことが起こります。
私が抱えている問題はこれです。
最新のアクティビティ項目を使用して個人アカウント ページに移動すると、セッション開始時にデータベースにアクセスしただけなので、「最後に見たもの」は 1 秒前と表示されます...何を見たいので、これは良くありません。私は「今」そこにいるときではなく、「最後」にそこにいました。
ただし、Skip(1).Take(1)
データベースで 2 番目のレコードを取得するために使用した場合、「ちょうど」サインオンしているときに他の誰かが私のプロファイルを表示すると、今日ではなく 1 週間前にサインオンしたことがわかります。
ケーキを食べて食べるには、どのような論理を使いますか?
ASP.NET MVC2 と Linq to SQL を使用していますが、この質問は言語に依存しないと思います。