You are not logged in.
crushcoder
God
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.
Quoted from "crushcoder"
- birth_day, _month, _year würde ich durch einen timestamp ersetzen.
ergibt bei der programmierung mehr möglichkeiten und die zeitzone ist auch unwichtig.
Quoted from "crushcoder"
- icq, aim, yabber,... würde ich auslagern mit einer kreuztabelle.
dann kann man noch andere dienste hinzufügen ohne gleich alle user ändern zu müssen.
Quoted from "crushcoder"
- was ist picture? ein link zu einer datei? auch da würde ich auslagern, dann kann man festlegen ob der user ein standard-bild, ein verlinktes bild auf eigenem webspace, ein individuelles bild auf dem forum-server oder ein blob in der datenbank hat.
Quoted from "crushcoder"
- bei geschlecht fehlt t für transgender.
Quoted from "crushcoder"
- admin/banned usw würde ich durch eine user/rollen-struktur ersetzen, ich denke das man auch admins haben will die nicht alles dürfen
Quoted from "crushcoder"
- hier im board finde ich ja sehr praktisch das ich sehe welche threads ich gelesen habe, und das funktioniert auch.
das würde ich auch noch einbauen.
Quoted from "crushcoder"
was redundanzen angeht:
erst wenn du wirklich viele zugriffe gleichzeitig hast lohnt sich eine optimierung in diese richtung.
wobei nichts in der datenstruktur redundant sein sollte, sondern zb in ein paar views auf die die anwendung dann zugreift.
Quoted from "crushcoder"
wenn es extrem wird partitioniert man eine tabelle, hier am ehesten die posts, dh. man hat mehrere post-tabellen, zb für die letzten tage und eine history, oder nach board getrennt.
sehe ich hier aber nicht die notwendigkeit für.
das ist aber keine redundanz, jedes post gibts nur einmal.
Quoted from "crushcoder"
für die performance solltest du dir erstmal besser ein orm-framework (object-relational-mapping) für die anwendung suchen, das macht schon einiges aus und hilft auch durch die navigation der joins.
crushcoder
God
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.
crushcoder
God
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.
Quoted from "crushcoder"
auto_increment bedeutet das er automatisch die id hochzählt.
unsigned heißt ohne vorzeichen, es geht also kein -1 (macht ja sinn bei ids).
primary key heißt das diese spalte jeden datensatz eindeutig identifiziert, deswegen muss die id immer unterschiedlich sein.
Quoted from "crushcoder"
das passwort sollte man nie als klartext in die datenbank schreiben, das ist immer unsicher.
normalerweise hashed man es (früher md5, inzwischen braucht man was sichereres), d.h. man verschlüsselt es so das es nicht mehr entschlüsselt werden kann.
in den meisten fällen reicht das, man will ja meist nur das passwort überprüfen. falls es jm vergisst wird ein neues generiert.
crushcoder
God
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.
Quoted from "Y0Gi"
Passwörter kannst du in deinem RDBMS mit den String-Funktion SHA1() oder MD5() als Hashes ablegen. Das ist unabhängig von der Programmiersprache (in der man es aber auch realisieren kann, was Vor- und Nachteile hat, die sich irgendwo auch ausspielen können).
![]() |
Source code |
1 |
SELECT SHA('RTFM'); |
Quoted from "messi@T.B.S."
wenn sich dann wer einlogt muss man aus dem eingegeben pass wieder nen hash bilden und den vergleichen, so richtig ?
crushcoder
God
Quoted from "Y0Gi"
Passwörter kannst du in deinem RDBMS mit den String-Funktion SHA1() oder MD5() als Hashes ablegen. Das ist unabhängig von der Programmiersprache (in der man es aber auch realisieren kann, was Vor- und Nachteile hat, die sich irgendwo auch ausspielen können).
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.
-