私のサイトには、ユーザーがメッセージを書いて他のユーザーに送信できるエリアがあります。そのメッセージは、メッセージの作成者によって指定されたユーザーのみが表示できます。だから私は 2 つのテーブルを作成しました:Message_Author
とmessage_Receivers
の共通の列を与えますmessageID
。投稿されたメッセージごとに、1 つのエントリがMessage_ Author
$db->query("
INSERT INTO Message_Author
VALUES('$message_id',$_SESSION[email],$message)
");
そして Message_Receivers に:
foreach($receiversUserNameArray as &$value){
$db->query("
INSERT INTO Message_Receivers
VALUES('$message_id',$value)
");
}
これで、メッセージの作成者によって指定されたすべてのユーザーが、そのメッセージ ID を持つメッセージを表示できるようになります。問題は、ユーザーが「すべての連絡先に送信」したい場合です。これは、数百のユーザー名になり、それぞれの行が多くのデータベース スペースを占める可能性があります。受信者ごとに行を作成せずに、これら 2 つのテーブル間で messageID をリンクするより良い方法はありますか?