Hvordan kan jeg kode en innboks for meldinger?

Mr Vest

Sjefen over alle sjefer!
Denne tittelen ble litt dårlig, dvs, jeg vet hvordan jeg skriver koden kan man si, men jeg trenger litt hjelp med hvordan dette burde være i databasen med tanke på svar, og svar på et svar, og gjerne også svar på et svar på et svar osv...

Slik jeg har det i dag, så har jeg liksom en tabell i databasen for sendte brev, og en for innboks. Derimot så har jeg ikke noen god løsning på hva jeg skal gjøre dersom noen svarer på et brev som ligger i innboks, og det er her jeg kunne tenke meg noen tanker om hvordan dere ville gått frem..

Jeg har tenkt på dette en stund, men hodet mitt finner liksom ikke en god løsning. Det jeg vil oppnå er liksom det at når jeg sender en melding til Olsen, da vil jeg at når Olsen svarer på denne meldingen, at meldingen jeg sendte til Olsen skal komme frem under meldingen han skrev tilbake til meg, og slik vil jeg at det skal fortsette dersom jeg igjen svarer på svaret som Olsen sendte meg. Slik at Olsen da får 2 meldinger under brevet jeg sendte til ham igjen.

Nå skal jeg ikke be noen skrive noe kode her, men bare hvordan du ville ha satt dette opp i databasen. Jeg forstår at måten jeg har satt det opp med en tabell for sendte brev, og en tabell for innboks er en dum løsning, så jeg er ganke åpen for å lage hele biten fra scratch.

Så... Hehe, hvordan ville du gjort dette her? :)
 

tyr897

Medlem
Tror nok det er enklest med kun én tabell for meldinger, ja. Så er det jo egentlig bare å finne en måte å vite hvilke meldinger som hører sammen.

Dersom alle svar på meldinger åpner med RE: eller SV: eller lignende, kan du jo bare strippe bort disse tegnene og lagre de i et eget felt kalt f.eks. parent_title.
Når du da skal finne en samtale, henter du ut alle meldinger mellom to brukere med samme parent_title.
 

to-ov

Medlem
Hmm.. noe ala dette tenkte jeg også på for en stund siden og kom frem til noe slikt:

DB: id | parent id | sender_id | reciver_id | message | timestamp

så når noen sender første mld blir parent_id null. når noen svarer på mld blir parent id id'en fra forrige melding osvosv. Så er det bare å nøste dette opp hved hejlp av noen løkker i php.

Kanskje ikke så bra forklart, men det var i allefall tanken min.
 

Mr Vest

Sjefen over alle sjefer!
Hmm, du fikk meg inn på riktig spor her. Jeg skal leke meg litt med et slikt felt og se hvor langt jeg kommer. Takk for tipset. :)

to-ov, jeg ser hva du mener, men det vil ikke fungere optimalt. Man må f.eks ha et eget felt som viser om mottaker har lest meldingen, et felt som viser om mottaker har slettet den, et felt som viser om senderen har slettet den fra sendte elementer og muligens også mer som jeg ikke kommer på sånn i farta. Det er så mye dill liksom, men takk for svar allikevel, til begge to. Det er nok denne biten med et felles felt på en "samtale" som kan lage det til slik jeg vil ha det. Det er sikkert mye man kan gjøre for å få dette "perfekt," men så lenge det faktisk funker vil jeg plassere meg selv i kategorien "Fornøyd." :)
 
Sist redigert:

Nextri

Rebel
Slik som dette har vi laget en innboks.

Hver samtale mellom to personer er en "tråd" som har en sender og en mottaker.
Hver tråd kan ha mange meldinger. hver melding blir lagret 2 ganger. slik at begge parter kan slette meldinger hver for seg. uten at det går utover den andre.

threads
2010-03-03_1542.png


messages
2010-03-03_1545.png
 
Topp