2

PHP と MySQL で実装する方法は知っていますが、今はちょっとした思考の問題があります。

フォーラムのウェブサイトがあります。すべてのユーザーが質問を投稿できます (stackoverflow など)。では、ユーザーが (2 日後などに) 戻ってきたときに、自分のスレッドに新しい投稿があること (メッセージまたはアラート...) が表示されるようにするにはどうすればよいでしょうか?

分かりますか?それをすべてデータベースに入れることはできません。少しサーバーが重いと思いますか??

ありがとう。

4

3 に答える 3

4

私の記憶が正しければ、Simple Machines Forum での処理方法は次のとおりです。

各ユーザーは、クリックした各スレッドのレコードを持っています。レコードには、そのスレッドがクリックされた時点での最大のメッセージ ID が保存されます。

メッセージ ID は自動インクリメント整数であるため、新しいメッセージには以前のメッセージ ID よりも大きなメッセージ ID が含まれます。

そのため、ユーザーがスレッドのリストを表示すると、SMF は、スレッド内の現在の最大メッセージ ID が、ユーザーのスレッド レコードに格納されているものよりも大きいかどうかを確認します。大きい場合は新しいレコードがあり、スレッドには「新しいメッセージ」アイコンが表示されます。それ以外の場合、スレッドには「新しいメッセージがないアイコン」が表示されます。また、スレッド レコードがない場合、ユーザーはスレッドにアクセスしたことがなく、「新しいメッセージ」アイコンが表示されます。

ユーザーが実際にスレッドをクリックすると、スレッド レコードは再び最大のメッセージ ID で更新されます。

于 2012-04-20T14:26:27.300 に答える
3

lastActiveTimeユーザーのをサイトに保存する必要があります。ユーザーがスレッドまたはページにアクセスするたびに、ユーザーのこの値を更新します。次に戻ったときに、の後に作成されたすべての投稿に対してクエリを実行し、lastActiveTimeリンクのリストを表示します。

つまり、ユーザーテーブルに追加する必要があるのは1つのフィールドだけで、それ以上は必要ありません。この新しいフィールドには、特定の投稿の鮮度を判断できる簡単な日付が含まれています。

于 2012-04-20T14:17:44.257 に答える
-2

あなたはそれをすべてデータベースに入れることができます...

他にどこに行くのでしょうか?

マジックランド?^ _ ^

ある種の時間要素を各行に追加して、すべてをデータベースに保存するだけです。

于 2012-04-20T14:17:37.677 に答える