Tek tablo ile işi çözmek istersen kendini kısıtlamış olursun, yani sistemin pek genişleyebilir olmaz. Bu nedenle genellikle aşağıdaki gibi bir veritabanı tasarımı izlenir.
Mesajlar ayrı tabloda, alıcılar farklı bir tabloda tutulur ve ilişkilendirilir.

Yani:
Mesajlar: Id, ParentId, GonderenId, Baslik, Mesaj, Tarih (ParentId; mesaja cevap yazılırsa kullanılır, hangi mesaja cevap yazılmış ise onun id'si yazılır)

Alıcılar: MesajId, AliciId, Durum (okundu, okunmadı, silindi, spam vs.)

/*mesajlara eklentide koyacaksan farklı bir tablo yapabilirsin*/
Mesaj Ekleri: MesajId, DosyaYolu