2

たとえば、複数のユーザーと複数のスレッドが存在するフォーラムの形式を考えてみましょう。このフォーラムが、どのユーザーがどのスレッドを読んだかを追跡し、その情報を使用して、スレッド リストを表示するときにどのスレッドが未読であるかをマークするとします。

私が想像できる唯一の解決策は、ユーザーがスレッドにアクセスするたびにレコードをデータベースにドロップすることです。「すべて既読としてマーク」ボタンがあり、タイムスタンプを使用してデータベースのスプロールを軽減できると思いますが、これは私を感動させる解決策ではありません.

ここで何かが足りないような気がします...感謝祭の朝は、プログラミングの問題について考える時ではないのかもしれません。

これに対するより良い解決策はありますか?何か案は?

4

3 に答える 3

3

データベース レコードの使用は、私にとって最も有望に思えます。アクティブなフォーラムがある場合、数百万行のテーブルを非常に迅速に生成しますが、実装するのが最も簡単なソリューションです。これにより、どのユーザーが何を読んでいるかを照会するための柔軟性が大幅に向上します。

于 2008-11-27T13:31:12.740 に答える
1
  1. ユーザーとスレッドの組み合わせごとにデータベースにレコードをドロップする
  2. または、この情報をファイル (ユーザーごとに 1 つのファイル) に保存します。同じユーザーによる複数のログインが許可されている場合は、ロック/ロック解除が必要になる場合があります。
于 2008-11-27T13:28:02.307 に答える
0

どこかで見たと思いますが、おそらくphpbbフォーラムですか?とりあえず

その中には、userid、threadid、last-read-datetime (userAsRead という名前を付けます) を含むテーブルがありました。

次に、そのスレッド ID と last-read-datetime で作成された最後の投稿を比較します

すべて既読のマークの場合、それは上記と同じロジックを使用するユーザーテーブルのフィールドでした

「すべて既読としてマーク」が使用されている場合は、userAsRead をクリアすることを忘れないでください。これにより、DB スペースが節約されます。

于 2008-11-27T13:34:38.410 に答える