未読メッセージ通知のために論理的に何をすべきでしょうか?
プラットフォーム上にさまざまな新しいメッセージの通知があると、プラットフォーム内のメンバーに未読のメッセージが通知されるというシナリオです。
私の当初のアイデアは、メンバーに未読メッセージを記録するための通知フィールド (デフォルトでは空) を提供することでした。新しいメッセージがプラットフォームでリリースされるたびに、メッセージの ID がすべてのメンバーの通知に追加されます。通知の最終構造は $id、$id、$id、です。複数あるということは、未読のメッセージがいくつかあることを意味し、各メッセージの対応する ID をクリックしてこの情報を参照すると、対応する $id が通知から削除されます。
この考えは合理的ですか?それとももっと良いアイデアは何でしょうか?
------ソリューションのアイデア----------------------
あなたが望むメッセージング システムは、まさにメッセージボードの拡張では、メッセージ ID と対応するユーザー ID を保存するテーブルを設定することができます。このテーブルは非常に長い場合があります。月ごとに 1 つのテーブルに分割できます
-----ソリューションのアイデア------ --- --申し訳ありませんが、
パブリッシュされたメッセージを格納する配列 (メッセージ ID) が memcache に保存されることを確認しました
ユーザーがログインすると、からの読み取りメッセージがデータベースが読み取られるかどうかはあなた次第です。
次に、ユーザーのオンライン データ操作を memcache などのキャッシュに保存し、新しいメッセージを読み取ります。オンライン時は定期的に通知を受け取る必要があります (メッセージを即座にプッシュする必要があるため)。
データが無効になると、ユーザーはデータを再度読み取る必要があります。データベース内のデータを取得し、memcache に一時キャッシュ データを再生成します。
これだけです。ユーザーは何人いますか? ユーザーが多いため、いくつかの方法を組み合わせる必要があります。リクエストが多いため、データベースへの読み取りと書き込みを減らしてください。