Мисля, че можете да запазите текущата си структура на таблицата за съдържанието на съобщението. Вместо да добавяте отделни колони или изтрити флагове, по-добре е да имате отделна таблица за пощенски кутии.
Така че вашата текуща таблица mbox:
id message sentby sentto created
След това друга таблица за потребителски_пощенски кутии
id user mailbox message_id
Ще трябва да направите общо три вмъквания, когато пишете съобщение, едно в таблицата със съобщения, за всеки потребител в таблицата user_mailboxes.
Така че вашите 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. Това също би позволило бъдещи добавки, като ви позволява да изпращате съобщения до множество потребители едновременно (Нов ред за всеки потребител) и ви позволява да добавите повече от една пощенска кутия, ако е необходимо (Входящи, Излизащи, Кошче, Важно и др.).
За да търсите пощата за потребител за конкретна пощенска кутия, просто трябва да използвате присъединяване
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.