ホームページ >バックエンド開発 >PHPチュートリアル >PHP System Gazette - 全員に通知を送信する

PHP System Gazette - 全員に通知を送信する

WBOY
WBOYオリジナル
2016-06-13 12:09:001259ブラウズ

PHP システム アナウンス - 全員に通知を送信
私はよくこのような経験をします。つまり、システムにログインするとシステム メッセージ プロンプトが表示され、このメッセージは全員に向けられたものですが、プログラムはどのようにして誰を区別するのでしょうか。このニュースをまだ見ていない人はいますか? (見ていない人にはページの上部にプロンプ​​トが表示され、見た人には自動的に消えてしまうためです。) この効果は PHP を使用してどのように実現され、データ構造はどのように設計されているのでしょうか。
------ソリューションのアイデア----------------------

テーブル構造
table1:message
msg_id msg_content public_time

table2:read
msg_id user_id read_time


システム メッセージを公開する message にレコードを挿入するだけです
例:
123「午後の休憩」 1414468731

読んだ人が既読テーブルにレコードを挿入
123 5145 1414468745



未読があるかどうかを判定information

select * from message where msg_id not in (select msg_id from read where user_id = 5145)

SQL の効率が気になる場合は、次の

を使用できます。 select * from message age where message left join (select* from read where user_id = 5145)temp on message.msg_id = temp .msg_id where temp.user_id is null;





------解決策----------------------
メッセージテーブルにはコンテンツとユーザーIDが含まれています。 userid=0 は、メッセージがグローバルであることを意味します
ユーザー テーブルに、1,20,123 のように、表示されたメッセージ ID をカンマで区切って記録するフィールドを追加できます
メッセージを表示した後にメッセージ ID を追加します
メッセージの頻度が高い場合は、uid と msgid の 2 つのフィールドのみを含む別個のメッセージ表示レコード テーブルを維持することを検討できます。レコードは表示されています
------解決策のアイデア- ---------------- -----
時計を手に入れて、それを見た人に着けてみませんか? ? ?

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