Ik denk dat je beter een relatie tussen de email en de users kan maken. Je hebt nu namelijk een email alleen, met daarbij al die mensen die aan die email gekoppeld zijn. Dat is best lastig om goed te bouwen. Daarom is de meest simpele manier (en voor jou de overzichtelijkste manier) om het te verdelen over twee tabellen: De emails (inbox
) en de user_inbox
. De inbox
bevat de informatie over de email, en met andere tabel user_inbox
koppel je de email aan de gebruiker(s). Voorbeeld
Database tabel inbox
met de kolommen ->
- mail id
- mail titel
- mail content
- datum verstuurd
- etc etc.
Database tabel user_inbox
met de kolommen ->
Dan krijg je deze relatie:

(of http://prnt.sc/e55fdx )
De user-kolom staat per rij gekoppeld aan een emailtje en aan een gebruiker. Dus per gebruiker-mail krijg je een rij. Dat ziet er ongeveer zo uit:

(of http://prnt.sc/e55hyi )
Door op deze manier een relatie op te bouwen tussen je database tabellen krijg je een veel-op-veel relatie in je database en houd je informatie mooi gescheiden.
Qua query zal 't er zo uit kunnen zien:
SELECT inbox.* FROM inbox, user_inbox WHERE user_inbox.user_id = 'DE USER ID' AND inbox.id = user_inbox.mail_id
Wat de query doet is: Hij haalt de rijen op van de user_inbox
tabel, zoekt naar de emailtjes van de user. Bij die informatie haalt die de informatie van de rij inbox waar de ID van mail_id
de ID
is in de tabel inbox.
Ik denk dat dit 't ongeveer is. Misschien dat iemand anders dit op een andere manier zou aanpakken. Maar zo zou ik het doen 🙂