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 つのフィールドのみを含む別個のメッセージ表示レコード テーブルを維持することを検討できます。レコードは表示されています
------解決策のアイデア- ---------------- -----
時計を手に入れて、それを見た人に着けてみませんか? ? ?