Archiv verlassen und diese Seite im Standarddesign anzeigen : Nachrichten-System für User
Trialrider
03.12.2003, 09:38:22
Hallo Leutschens,
ich beabsichte für unser Firmenportal für die angemeldeten User ein Nachrichtensystem zu bauen. Leider habe ich nciht so richtig den Plan, wie die Tabelle(n) für die Nachrichten aufgebaut sein sollten.
Meine User-Tabelle sieht so aus:
Tabelle "user":
USER_ID : User : Password : Root
Tabelle "nachrichten" (meine Vorstellung):
Msg_ID : Zeitpunkt : To_User : From_User : Message
Außerdem würde ich es gern wie bei Foren machen, dass man sieht wozu die Nachricht im Falle "Antwort" gehört. Sprich Parent usw.
Könnt ihr mir da mal bitte mit auf die Sprünge helfen?
Danke und viele Grüße,
Trialrider
Hi Trialrider
der einfachste weg wäre es die ParentID mit zu speichern.
Ich kann dir mal das DB-Schema geben vom WBB 1.x
CREATE TABLE `bb1_pms` (
`senderid` int(11) NOT NULL default '0',
`recipientid` int(11) NOT NULL default '0',
`pmid` int(11) NOT NULL auto_increment,
`folderid` int(11) NOT NULL default '0',
`view` int(1) NOT NULL default '0',
`reply` int(1) NOT NULL default '0',
`forward` int(1) NOT NULL default '0',
`sendtime` int(11) NOT NULL default '0',
`subject` varchar(70) NOT NULL default '',
`message` text NOT NULL,
`icon` varchar(200) NOT NULL default '',
`disable_smilies` int(1) NOT NULL default '0',
`signature` int(1) NOT NULL default '0',
`isnewsletter` int(1) NOT NULL default '0',
PRIMARY KEY (`pmid`)
) TYPE=MyISAM;
CREATE TABLE `bb1_pmsend` (
`userid` int(11) NOT NULL default '0',
`recipientid` int(11) NOT NULL default '0',
`pmparentid` int(11) NOT NULL default '0',
`pmid` int(11) NOT NULL auto_increment,
`sendtime` int(11) NOT NULL default '0',
`subject` varchar(70) NOT NULL default '',
`message` text NOT NULL,
`icon` varchar(200) NOT NULL default '',
`disable_smilies` int(1) NOT NULL default '0',
`signature` int(1) NOT NULL default '0',
PRIMARY KEY (`pmid`)
) TYPE=MyISAM;
Also wo fangen wir da an?
senderID ist logisch
recipientid ist die ID des vorgängers
pmid ... die eigendliche ID der Msg
folderid ... Die haben zusätzlich eine Ordner-Verwaltung eingebaut, diese ID gibt an in welchem Folder die PM liegt. zB: 0 Ausgang, 1 Eingang
view ... Wie oft wurde sie angeschaut
reply ... Kennzeichen ob geantwortet wurde
forward ... Kennzeichen ob die Weitergeleitet wurde
sendtime ... Zeitpunkt des versenden
subject, message ... ist irgendwie logisch
icon ... gibt an welches Icon verwendet wurde.
disable_smilies, signature ... sind optionen bei der Anzeige
isnewsletter ... gibt an ob es ein System-Newsletter ist, daher kann dieser ned gelöscht werden.
Beim pmsend -Table ist es fast genauso, dieser ist für die Versendeten PMs
Hoffe ich konnte dir einen Einblick, bzw. Gedankenanstoss geben.
Trialrider
03.12.2003, 13:06:47
Danke, Nev.
Kann man wo auch WBB 1.x beziehen, notfalls um sich die Skripte mal anzuschauen oder um zu probieren?
Auf alle Fälle werde ich mich mal durch die Tab.-Strukturen wursteln.
Viele Grüße, Trialrider
Hi @gain
Du kannst das WBB auf Woltlab (http://www.woltlab.info) beziehen.
hier hast du den direkten Link zum Download (WBB 1.2) (http://www.woltlab.org/dl/wbb1.2.zip)
Der Auszug von oben war aber ned von der Wbb 1.2, sondern vom Wbb 1.1
Tip:
Schau dir generell mal den Code an, bzw auch die Lösungen zB Template-System, ... man kann einiges daraus lernen.
Es ist zwar ned ganz sauber gecodetet, aber man lernt aus allem ;-)
Trialrider
03.12.2003, 15:42:40
Hi Nev,
wiederum "Danke". Habe mir mal das Board gezogen... Sieht optisch erstmal gut aus. Gibt bloß immer eine blöde Notiz: Undefined Index REQUEST_URI in ... Aber ich habe ja auch alle Meldung aktiviert ;-)
Rein von der Füllung der Tabellen für die Nachrichten deckt es sich mit meiner Vorstellung. Wobei ich es auf eine Tabelle beschränken werde, da dort ja die "parent" und die eigentliche "id" drinstehen.
Werd mich mal probieren. Die Template-Systematik und diversen anderen Punkte schaue ich mir später auch mal noch an. Doch da von meinem Portal die Version 0 schon zu 75 % fertig ist, werden die letzen 25 % auch noch hart gecodet...
Danke für die Hilfe und bis denn,
Trialrider
Trialrider
13.01.2004, 13:56:37
Hi Nev,
so habe mein Nachrichten-System fast fertig. ein Problem drückt mir aber noch aufs Auge:
Ich habe den Zeitpunkt des Versendens/Eintragens als TIMESTAMP(14) definiert. Soweit funzt auch alles, aber wenn ich jetzt den von ungelesen auf gelesen switche, dann ändert es mir auhc den Zeitstempel.
Kann man das irgendwie umgehen? Bitte hilf mir da nochmal.
Danke und MfG, Trialrider.
Hi Trialrider
Ich würde den Versende-Zeitpunkt bzw. den anderen, nicht als TIMESTAMP definieren
sondern als INT 14
D.h. das du beim Insert die Zeit auch definieren muss.
geht ganz einfach mit
= '".time()."' (PHP)
oder mit
= now() (Mysql)
Somit ändert sich der Zeitstatus nicht wenn du dir den Datensatz anschaust.
Trialrider
19.01.2004, 15:25:41
Danke Nev,
hab's gefixt. Von Timestamp auf Int und per time() wird der aktuelle Zeitpunkt gesetzt.
Cu, Trialrider
vBulletin® v3.8.3, Copyright ©2000-2013, Jelsoft Enterprises Ltd.