Gelezen / ongelezen systeem

Status
Niet open voor verdere reacties.

larsojo

Gebruiker
Lid geworden
10 nov 2010
Berichten
213
Hallo allemaal,

Ik ben bezig met een Privé Berichten systeem, waarbij een bericht naar meerdere gebruikers gestuurd kan worden, ook is er een Cc en een Bcc.

Nu moet ik alleen een oplossing vinden voor een gelezen/ongelezen systeem. Eerst was het idee om een kolom genaamd 'read' toe te voegen waar dan 'yes' of 'no' in komt te staan, maar aangezien je een bericht naar meerdere gebruikers kan sturen is dit niet handig.

Hoe kan ik dit het beste aanpakken?

Mvg Larsojo
 
Op zich vrij logisch. Als je per gebruiker de (on)gelezen status wilt weten, dan zul je het ook per gebruiker moeten bijhouden in een tabel.

Dat wordt dus een aparte tabel met daarin een regel per bericht en ontvanger. Aangevuld met een true/false voor (on)gelezen status.
 
ahaaaa

Ik heb er ook nog aan zitten denken om per userid een yes of no neer te zetten. Alleen de vraag is hoe kan ik dat dan weer netjes terugkrijgen in de tabel?
 
Ik snap niet precies wat je bedoeld. Je zult een extra tabel nodig hebben met 3 velden: messageID, userID, readYN
 
Juist. Maar als een bezoeker dan een bericht bekijkt, moet ik dan een insert query gebruiken of een update?
 
Beide kan.

Gebruik je een insert query dan is het feit dat een record in de 'gelezen' tabel niet voorkomt een indicatie dat iemand een bericht niet gelezen heeft. Betekent wel dat je dan ook nog eens de tabel met verzonden berichten moet doorzoeken om te controleren aan wie een bericht verzonden is.

Gebruik je een update query dan vind je in de 'gelezen' tabel alle benodigde informatie van zowel degenen die het bericht hebben gelezen als ook degenen die het bericht niet hebben gelezen.
 
Of kan ik anders als ik het bericht verstuur, niet meteen bij de pb_read tabel alle gebruikers erbij invoegen zodat ik alleen een update query hoef te gebruiken als de gebruiker een bericht leest?
 
Ik heb het geprobeerd maar het lukt helaas niet, dit komt omdat ik alle ontvangers (to, cc, bcc) met een ',' gescheiden heb in de kolom. Ik kan dus helaas niet dit dan in de pb_read tabel invoegen omdat ik niet weet hoe ik de ontvangers apart kan scheiden in een andere tabel...


Hoe kan ik dit oplossen?
 
dit komt omdat ik alle ontvangers (to, cc, bcc) met een ',' gescheiden heb in de kolom.

Dan is dat sowieso iets wat je moet aanpassen want zoals je nu merkt kun je met kommascheiden data helemaal niets meer doen buiten printen.
 
Maak voor elk adres dat wordt gebrukt in "to","cc" en "bcc" een aparte record in een "geadresseerden" tabel, dan kun je daarbij bijhouden dat je het bericht hebt gestuurd, en wanneer de ontvanger hem leest kun je ook daarin afvinken dat het bericht gelezen is. (en als je die gebeurtenissen opslaat door een timestamp in te voeren, dan weet je ook wanneer je de berichten hebt gestuurd en wanneer ze gelezen zijn, wat erg belangrijk is wanneer er een probleem met de berichten is en iemand beweert niets ontvangen te hebben of iets niet gelezen te hebben)
 
En hoe kan ik dit scheiden als ik een vinkjes-systeem gebruik voor de ontvangers?
 
Scheiden? Om te beginnen moet je ze al niet eens samenvoegen, dan is later scheiden ook niet nodig.
 
Je moet de adressen juist apart opslaan, één record per adres. Dus als een bericht naar drie personen gaat dan maak je in de "geadresseerden" tabel drie record waarin je opslaat om welk bericht het gaat, wie de geadresseerde is, of het een to, cc of bcc is, en of de geadresseerde het bericht heeft gelezen.

En ja, dat geeft vrij veeel records en dat maakt niet uit want dat is precies waar databases voor bedoeld zijn.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan