php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.02.2006, 15:48  
Gast
 
Beiträge: n/a
Standard [Erledigt] Einfacher Aufbau eines internen Mailsystems

Hallo,

baut man so etwa ein internes Nachrichtensystem auf?

Zitat:
id INT AUTO_INC
von VARCHAR
an VARCHAR
betreff VARCHAR
inhalt TEXT
datum DATETIME
status_sender INT
status_receiver INT
status_sender = archiviert/gelöscht
status_sender = ungelesen/gelesen/archiviert/gelöscht

wenn beide gelöscht sind, kann man den datensatz dann auch löschen.

vielleicht noch ein flag "beantwortet"?
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.02.2006, 17:29  
Gast
 
Beiträge: n/a
Standard

Warum nicht?
  Mit Zitat antworten
Alt 09.02.2006, 17:47  
Gast
 
Beiträge: n/a
Standard

Ist das denn die gängige Form? Ich hab sonst nur "primitivere" Beispiele gesehen, welche für jede Mail gleich 2 Datensätze anlegen (eine für Sender, eine für Receiver).
  Mit Zitat antworten
Alt 09.02.2006, 18:00  
Gast
 
Beiträge: n/a
Standard

Was heißt gängig und primitiv...?
Wenn jeder das selbe programmieren würde, gäbe es keine Innovation und wenn Du weißt, was ein primitives Beispiel ist, dann kannst Du Dir Deine Frage eigentlich selber beantworten.

Wenn es ein Nachrichtensystem für einen kleinen Kreis von Usern werden soll, mag das vielleicht schon ausreichen...
Kommt halt immer darauf an, was Du machen willst.
  Mit Zitat antworten
Alt 09.02.2006, 18:27  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Sieht doch ganz gut aus.

Grundsätzlich als (teilweise rein persönliche) Empfehlung:
- benutze komplett englische(n) Code/Benennung (du benutzt beide Sprachen)
- verwende bei von/an nicht VARCHAR sondern die ID des Benutzers. Sollte sich der Benutzer einmal umbenennen wollen, musst du dies nur an einer Stelle machen (denn die ID bleibt ja gleich). Auch wenn das momentan nicht notwendig erscheint. Es ist üblich und wer weiß schon was morgen kommt

Den Status "beantwortet" könntest du eventuell so lösen, dass jede Nachricht noch einen Referenz-Flag erhält, der auf die Nachricht verweist, auf die geantwortet wurde. So kannst du später sogar die Nachrichten in einer Baumstruktur anzeigen, falls mal erwünscht.
Zergling-new ist offline   Mit Zitat antworten
Alt 09.02.2006, 19:19  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Zergling
- verwende bei von/an nicht VARCHAR sondern die ID des Benutzers. Sollte sich der Benutzer einmal umbenennen wollen, musst du dies nur an einer Stelle machen (denn die ID bleibt ja gleich).
Das werde ich dem User aber nicht erlauben mal eben so seinen Nick zu ändern Auch morgen icht *g
  Mit Zitat antworten
Alt 09.02.2006, 20:04  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Das mag sicher sein, aber wenn du so eingeschränkt denkst (nicht im beleidigenden Sinne gemeint), dann wirst du es später bereuen!
Es geht ja jetzt speziell auch nicht um den Benutzernamen. Wahrscheinlich wirst du dem User die Namensänderung wirklich nie anbieten.
Aber wenn du die Methodik mit der Verwendung der ID konsequent anwendest, garantiere ich dir, dass du letztlich besser und flexibler fährst als wenn du Zeichenketten (Titel, Namen, ..) als Identifizierer verwendest.

Immer vorausgesetzt du programmierst halbwegs oft und es bleibt jetzt nicht beim Homepage-Gästebuch.

http://de.wikipedia.org/wiki/Normali...28Datenbank%29

(frage mich, wozu du dann überhaupt den Thread gestartet hast)
Zergling-new ist offline   Mit Zitat antworten
Alt 09.02.2006, 21:19  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zitat:
Zitat von Truncate
Das werde ich dem User aber nicht erlauben mal eben so seinen Nick zu ändern ;) Auch morgen icht *g
Mal abgesehen davon, ob du dem Benutzer erlaubst seinen Namen zu ändern oder nicht, sind Abfragen, bei denen die Verknüpfungsspalten aus Integerwerten bestehen in der Regel deutlich performanter, da die von MySQL zu indizierende Datenmenge geringer sein dürfte.
xabbuh ist offline   Mit Zitat antworten
Alt 09.02.2006, 21:49  
Gast
 
Beiträge: n/a
Standard

Ja aber bei 1.000 Usern macht sich doch sowas kaum bemerkbar, wenn maximal 20 gleichzeitig online sind.

Normalisierung findet ja statt, aber eben nicht mit IDs sondern Nicks...

UND: Für mich ist es einfacher Queries zu ändern. Würde ich immer erst IDs auslesen und mit JOINs arbeiten müssen, würde ich wohl eher ausflippen und die Queries nach paar Wochen selber nicht mehr verstehen
  Mit Zitat antworten
Alt 09.02.2006, 22:42  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Dann frag doch aber nicht, wenn du Hinweise eh nicht ernst nimmst
Zergling-new ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
aufbau eines mailsystems

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:09 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.