Myslím, že si můžete ponechat svou současnou strukturu tabulky pro obsah zprávy. Spíše než přidávání samostatných sloupců nebo odstraňovaných příznaků by bylo lepší mít samostatnou tabulku pro poštovní schránky.
Takže vaše aktuální tabulka mbox:
id message sentby sentto created
Pak další tabulka pro user_mailboxes
id user mailbox message_id
Při psaní zprávy byste museli provést celkem tři vložení zprávy, jedno do tabulky zpráv, pro každého uživatele v tabulce user_mailboxes.
Vaše data mbox tedy vypadají takto:
id message sentby sentto created
1 Hi There UserA UserB 2015-01-26
2 Hello Back UserB UserA 2015-01-26
A data user_mailboxes by vypadala takto:
id user mailbox message_id
1 UserA Out 1
2 UserB In 1
3 UserB Out 2
4 UserA In 2
To vám umožní odstranit jednotlivé řádky pro tabulku user_mailboxes. To by také umožnilo budoucí doplňky tím, že vám umožní posílat zprávy více uživatelům současně (nový řádek pro každého uživatele) a v případě potřeby vám umožní přidat více než jednu poštovní schránku (In, Out, Trash, Important , atd.).
Chcete-li vyhledat poštu pro uživatele pro konkrétní poštovní schránku, stačí použít join
SELECT * FROM user_mailboxes LEFT JOIN mbox ON mbox.id = user_mailboxes.message_id WHERE user_mailboxes.user = "$user" AND user_mailboxes.mailbox = "Out";
Při odstraňování byste potřebovali čisticí skript, abyste se ujistili, že v tabulce user_mailboxes neexistují žádné osamocené zprávy.