私はMYSQLを初めて使っています。私はメッセージモジュールで作業しています。私のテーブル構造はそれです。テーブル構造
メッセージ=> ID、メッセージ、
MessageUser => ID、MESSAGE_ID、receiver_id、SENDER_IDを作成したが、ユーザーに
ユーザー=> ID、ユーザ名、電子メール
SENDER_IDとreceiver_id仲間をis_read .idとmessage_idはMessage.idに関連付けられます
私の受信トレイのクエリを実行すると、条件を設定します(WHERE receiver_id = $ param)。 送信項目条件と同じです(WHERE sender_id = $ param)。私は私の受信トレイからメッセージを削除するか、私はUserMessageのテーブルの上に私の削除クエリを実行しbcozメッセージに
を送ったとき
そのfine.butワーキング問題がoccouredされます。
このメッセージが送信されたボックスから削除された場合、別のユーザーの受信ボックスからも削除されます。
私は2 soloutions
を持っています。他の列is_deleteを追加し、受信側または送信側からの削除に応じて値を設定します。
。 MessageUserテーブルを2つのテーブルに分割する Sender => id、message_id、sender_id; レシーバ=> id、message_id、receiver_id、is_read;
私にはより良いsolloutionがあります。送信者または受信者) ユーザーIDのPK
メッセージテーブルすることができます(
ユーザー表:ともfollwingを考慮)、高速
リスト2:あなたが指定した要件を満たしていないため、オプション1が2つの列を追加する必要があります.1つはSender_Deleted、もう1つはReceiver_Deletedです。しかし、私は常に1センダと1レシーバがあると仮定しています.1センダと多くのレシーバが存在しますか? – xQbert
はい1センダと複数レシーバがあります。 – Ahsan