4

グループ内のユーザーがアクションを実行すると、グループ内の他のすべてのユーザーに通知されるように、通知システムを作成しています。グループのユーザーごとに、通知を「既読」または「未読」とマークしたい。これで、ユーザーの未読通知を簡単に取得して表示できます。次のフィールドを持つ通知テーブルを作成することを考えています。

+----------------------+
| notification         |
+----------------------+
| id                   |
| userid               |
| content              |
| status (read/unread) |
| time                 |
+----------------------+

私の質問は:

  1. システムの作り方は正しいのか?つまり、グループに 1,000 人のユーザーがいる場合、テーブルに 1,000 行を挿入する必要があります。そうでない場合、これを行うより良い方法は何ですか?
  2. これを行う方法である場合、行を挿入するループを行うためにphp/mysqlコードをどのように書くことができますか?

ありがとう!

4

3 に答える 3

0

はい..uはこの方法でそれを行うことができます..例:ユーザー「PQP」(user_id = 1)が写真を追加していると仮定すると、写真追加クエリの成功に関する通知クエリを作成する必要があります(書き込みクエリを作成する必要があります通知としてそのポイントが必要な場所でのコードの通知用) したがって、通知テーブルは次のように新しいエントリを取得します

id = 1                
userid =1           
content = "Photo Added By User PQP"            
status = Unread
time = currenttime

したがって、この場合、誰かが写真をアップロードするたびに、通知テーブルにエントリが表示されます..

于 2013-11-13T09:26:58.937 に答える
0

次のデータ構造を検討してください。

Table: Events
----------------
event_id
user_id (foreign key to users table)
action_id (foreign key to actions table)
time_stamp

Table: Log
----------------
user_id (foreign key to users table)
event_id (foreign key to events table)
time_stamp

ロジックは、ログ テーブルにそのユーザーの event_id が含まれていない限り、すべてのイベントがユーザー X によって未読と見なされるようにする必要があります。

アクション テーブルには、多くの種類のアクションが含まれる場合があります。

ログを照会することにより、他の何人のユーザーがアクションを「受信」したかをカウントして、すべてのユーザーに通知できます。等'...

于 2013-11-13T09:50:39.817 に答える