スレッド化されたメッセージング システムのテーブル構造について疑問に思っています。
私は3つのテーブルがあると考えています:
- message_thread
- id
- subject
- message_user
- thread_id
- user_id
- thread_status (unread, read, trash, deleted)
- message
- date (date sent)
- sent_user_id
- message
それぞれmessage_threadが message_thread に 1 つのレコードを持ちます。各ユーザーは、そのスレッドにmessage_user関連するレコードと、そのスレッドの読み取り/削除ステータスも保持します。(message_userさまざまなステータスがいつ発生したかに関するいくつかの日時フィールドも含まれる場合があります。) メッセージ テーブルには、メッセージ、メッセージを送信したユーザー、および時間が含まれます。
最終的に、システムは Facebook と同様に機能するか、Gmail のように見えます (ただし、電子メールに基づくものではありません)。
必須:
- スレッドに 2 人以上のユーザーが関与している
- 各ユーザーは、スレッドに対して独自の読み取り/削除ステータスを持っている必要があります
これはあなたがそれを設定した方法ですか?