[MySQL] Structuur e-mail database

Pagina: 1
Acties:

  • Aham brahmasmi
  • Registratie: Juni 2002
  • Laatst online: 27-08-2021
Ik ben bezig met een PHP+MySQL project waarbij er overzicht over e-mail conversaties geboden moet worden. De achtergrond van het project is als volgt:
  • het systeem wordt hierbij door slechts 1 persoon gebruikt die e-mails krijgt en beantwoordt;
  • veel e-mails die ontvangen en beantwoord worden, zullen over hetzelfde onderwerp gaan en vormen dus een conversatie of thread;
  • deze e-mail conversaties moeten op een webpagina getoond worden die een overzicht geeft van alle ontvangen e-mails en alle replies hierop (de hele 'thread').
Mijn vraag is: hoe orden ik de binnenkomende e-mails en de replies/antwoorden hierop het best in de database? Wat is de beste manier om de relaties tussen binnenkomende mails en replies hierop vast te leggen?


Momenteel heb ik twee tabellen in de DB:
'inbox' -- ingaande e-mails;
'replies' -- replies (en forwards).

Zou het handig zijn om de inbox e-mails en de replies kruislings naar elkaars rij-nummer te laten verwijzen in een extra veld? Als volgt dus:

inbox: [id] [reply_id]
replies: [id] [email_id]

waarbij inbox.reply_id = replies.id en replies.email_id = inbox.id.

Ik heb weinig ervaring met eenvoudige opgezette databases en eenvoudige queries om de data eruit te halen, dus ik zou graag wat suggesties krijgen voor een goeie database-structuur om op de eenvoudigste manier het bovenstaande doel (e-mail conversaties weergeven) te bereiken.

Bij voorbaat dank!

[ Voor 16% gewijzigd door Aham brahmasmi op 08-06-2007 19:51 ]


  • ikke007
  • Registratie: Juni 2001
  • Laatst online: 22-10 21:08
zodra je gaat 'threaden' zou ik aan meerdere tabellen gaan denken

een email zit in een thread --> tabel threads en tabel emails waarbij een email de thread kan starten of kan inhaken.

Lets remove all security labels and let the problem of stupidity solve itself


Verwijderd

Een e-mail is een e-mail, of hij nou ontvangen is, of wordt verzonden. Waarom dus 2 tabellen?
Ik zou alles in 1 tabel stoppen, en eventueel een soort van thread_id bijhouden. De e-mail berichten kun je analyseren aan de hand van hun headers. Soms kun je daaruit heel wat halen. Maar wat je ook vaak ziet is een soort ticketsysteem waarbij in de subject een of andere unieke code moet staan. Zo weet je welke e-mails bij elkaar horen.

  • Aham brahmasmi
  • Registratie: Juni 2002
  • Laatst online: 27-08-2021
ikke007 schreef op vrijdag 08 juni 2007 @ 19:50:
zodra je gaat 'threaden' zou ik aan meerdere tabellen gaan denken

een email zit in een thread --> tabel threads en tabel emails waarbij een email de thread kan starten of kan inhaken.
En in een record van de tabel 'threads' zouden dan verwijzingen staan naar alle emails die onderdeel van een thread vormen?

@Cheatah: Misschien kan ik ook iets doen met een Message-ID in de e-mail header? Of zou je daar binnenkomende mails niet mee kunnen identificeren als onderdeel van een thread?

[ Voor 18% gewijzigd door Aham brahmasmi op 08-06-2007 20:13 ]


Verwijderd

Aham brahmasmi schreef op vrijdag 08 juni 2007 @ 19:56:

En in een record van de tabel 'threads' zouden dan verwijzingen staan naar alle emails die onderdeel van een thread vormen?
Nee. In elke e-mail record die deel uitmaakt van een thread staat een verwijzing naar die thread. De thread an sich hoeft niet echt veel informatie te bevatten. Misschien heb je er niet eens een tabel voor nodig.