ホームページ  >  記事  >  バックエンド開発  >  PHP サイト通知の問題の実装方法

PHP サイト通知の問題の実装方法

WBOY
WBOYオリジナル
2016-06-23 14:25:001279ブラウズ

サイト通知のみが必要です
管理者はバックグラウンドで通知を送信できます (一括送信と指定されたメンバーへの通知)。ユーザーは送信の許可がなければ通知を表示することしかできません

現在、次の構造を持つ my_messages テーブル
があります。
指定されたメンバーに通知を送信するには、My_messages にデータが挿入されている必要があります

テーブルを設計し、サイトのすべてのメンバーにグループ通知を実装する方法




ディスカッションに返信 (解決策)

各メンバーのレコードを挿入しますか?

次のようになります


テーブルのデザイン: 送信者 UID、受信者 UID、コンテンツ。

一括送信する場合は、すべての受信者の UID を取得します。


2 つのテーブルを使用する必要があると思います。1 つは、userid、msgid、ステータスを含むユーザー メッセージ (usermsg) を保存するためです。もう 1 つのテーブル (msg) は、メッセージのコンテンツ、ID、コンテンツ、挿入時刻などを保存します。グループ送信の場合は、最初に msg テーブルを挿入し、次に id を usersmsg テーブルに挿入する方が良いと思います

私であれば、テーブル構造は次のようになります:
id Message 配列、そしてそれを文字列型にシリアル化します。データを取得してこの列に保存します

誰かがそれを読み取ったら、userlist の内容を取得し、その内容を配列に逆シリアル化し、ユーザーの ID を削除してからシリアル化します


もし私だったら、私のテーブル構造は次のようになります:
id メッセージテキスト userlist
id メッセージテキスト すべてのユーザー ID が配列にまとめられ、文字列型データにシリアル化されてここに格納されます 1 列

誰かがそれを読んだ場合、userlist の内容を取得し、内容を逆シリアル化します配列に追加し、ユーザーの ID を削除して userlist 列にシリアル化します。たとえば、100,000 件のメッセージを一括送信すると、userlist が非常に大きくなります。文章が足りません。

次に、ユーザーが新しい情報を持っているかどうかを確認するのは簡単ではありません

私もこの問題に遭遇しました、

2 つのテーブル
1 つのテーブルには、通知情報 (ID、タイトル、コンテンツ、ctime、作成者、状態) が格納されます
別のテーブルには、通知情報が格納されているかどうかに関する情報が格納されますユーザーが読んだ情報:
id、sid (通知テーブル ID に対応)、uid (ユーザー ID)、view (読み取るかどうか)、hide (消去するかどうか)、ctime

どう思いますか?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。