メッセージの内容については、現在のテーブル構造を維持できると思います。個別の列や削除されたフラグを追加するよりも、メールボックス用に個別のテーブルを用意する方がよいでしょう。
つまり、現在のmboxテーブル:
id message sentby sentto created
次に、user_mailboxesの別のテーブル
id user mailbox message_id
user_mailboxesテーブルのユーザーごとに、メッセージテーブルに1つずつ、合計3つの挿入を行う必要があります。
したがって、mboxデータは次のようになります:
id message sentby sentto created
1 Hi There UserA UserB 2015-01-26
2 Hello Back UserB UserA 2015-01-26
また、user_mailboxesのデータは次のようになります。
id user mailbox message_id
1 UserA Out 1
2 UserB In 1
3 UserB Out 2
4 UserA In 2
これにより、user_mailboxesテーブルの個々の行を削除できます。これにより、複数のユーザーに同時にメッセージを送信できるようになり(ユーザーごとに新しい行)、必要に応じて複数のメールボックスを追加できるようになり(In、Out、Trash、Important)、将来のアドオンも可能になります。など)。
特定のメールボックスのユーザーのメールを検索するには、参加を使用するだけです
SELECT * FROM user_mailboxes LEFT JOIN mbox ON mbox.id = user_mailboxes.message_id WHERE user_mailboxes.user = "$user" AND user_mailboxes.mailbox = "Out";
user_mailboxesテーブルに存在しない孤立したメッセージがないことを確認するために、削除するときにクリーンアップスクリプトが必要になります。