Nachrichten unter Members

thehasso

Erfahrenes Mitglied
Hallo zusammen,


ich mach mir gerade riesen gedanken wie die Member unter meiner Website ordentlich untereinander nachrichten versenden können.


bevor ich irgendwie anfange etwas umzu setzen wollte ich euren rat wissen...um mit guten gewissen an der sache ran zu gehen...hab mir das so vorgestellt:

IDEE:

bei der Regristrierung wird eine tabelle namens message für jeden user erstellt. Sprich nur eine tabelle aber in der sich für jeden Member eine Zeile befindet mit den feldern.

FELDER DER TABELLE MESSAGE:

name, eingang, ausgang, betreff, datetime, autoincrement


Nachricht schreiben:

name = session[§user]


$SQL = sprintf("insert into tabelle message where name = '%s' ", $name):



und wenn man die Nachricht lesen möchte... klickt man auf lesen, und die Nachricht wird mit select ausgelesen.



lg
 
wenn du das so machst, wird deine Nachricht, die du schreibst immer überschrieben.

Tabelle: Nachrichten

Struktur: ID,VON,FUER,BETREFF,NACHRICHT



die ID wird automatisch vergeben...

So kann jeder User X Nachrichten verfassen


Auslesen mit WHERE VON=...
 
Du wiedersprichst dir. Zuerst sagst du für jeden User eine Tabelle und dann nur eine Tabelle mit je einer Zeile pro User.

Beides ist meines erachtens unsinnig.

Mal ein paar Gedanken von mir dazu:
Ich würde eine Tabelle erstelennen, wie folgt aufgebaut:

CREATE TABLE `nachrichten`.`nachricht` (
`nachricht_id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`sender` INT UNSIGNED NOT NULL ,
`empfaenger` INT UNSIGNED NOT NULL ,
`sendezeit` INT UNSIGNED NOT NULL ,
`gelesen` BOOL NOT NULL ,
`sendergeloescht` BOOL NOT NULL ,
`empfaengergeloescht` BOOL NOT NULL ,
`betreff` TEXT CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL ,
`nachrichttext` TEXT CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL
) ENGINE = MYISAM


Wenn jetzt eine Nachricht geschrieben wird musst du nur ein INSERT mit den entsprechenden werten machen.

Wenn der empfänger nun die Nachricht liest (Einfaches SELECT mit einem WHERE auf empfaengergeoescht und empfaenger) setzt du mit einem UPDATE das gelesen auf true.

Zum löschen wird einfach das entsprechende flag (empfaengergelöscht oder sendergelöscht) auf true gesetzt (UPDATE) und wenn beides auf true steht die zeile komplett. (DELETE)
 
Zurück