PostgreSQL を使用して PHP で簡単なフォーラムを作成しました。フォーラムは、トピックを含むいくつかのサブフォーラム (または必要に応じてカテゴリ) で構成されています。ユーザーが最後にトピックにアクセスしたのはいつかを保存するテーブルがあります。これは、user_id、topic_id、timestamp のようなものです。
最後のトピックへの返信のタイムスタンプと最後のユーザー アクセスのタイムスタンプを比較することで、どのトピックを未読としてマークする必要があるかを簡単に判断できます。
私の質問は、どのサブフォーラム (カテゴリ) を未読としてマークする必要があるかを効率的に判断するにはどうすればよいですか? 私が思いついたのはこれだけです: ユーザーがトピックにアクセスするたびに、訪問のタイムスタンプを更新し、現在のサブフォーラムのすべてのトピックが既読か未読かを確認します。それらがすべて既読の場合、サブフォーラムをユーザーの既読としてマークします。それ以外の場合は、未読としてマークします。しかし、私は別の方法があるはずだと思います。
前もって感謝します。