Einzelnen Beitrag anzeigen

Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#1

Datenbank Design für einen Userserver

  Alt 26. Feb 2009, 18:05
Datenbank: MySQL • Version: 5.1 • Zugriff über: Zeos
Hallo Leute,

ich bin gerade dabei eine Datenbank zu designen. Nun bin ich auf ein paar Fragen/Probleme gestoßen mit denen ich euch jetzt nerven werde

Anwendung:
Es gibt einen Service der eine ständige Verbindung zur Datenbank (zurzeit MySQL geplant) besitzt. Dieser Service hat dann so eine Art Chat Server Funktion. Es sollen also mehrere User in der Datenbank gespeichert werden die dann auch eine KontaktListe und so weiter bekommen sollen. Ich lege das ganze mal für 100.000 User aus.

Was ich bis jetzt mir überlegt habe:
Usertabelle:
(PrimärKey) UserID INT(10) Not Null Auto Inc
(PrimärKey) Username VARCHAR(100) Not Null
password VARCHAR(32) Not Null
email VARCHAR(100) Not Null
displayname VARCHAR(100)

In dieser Tabelle sollen die User gespeichert werden. UserID ist eine eindeutige ID für jeden User. Username ist der Anmeldenamen. Das Password wird als MD5 Hash gespeichert. Displayname sollte klar sein.

Avatartabelle:
(PrimärKey) UserID INT(10) Not Null
avatar BLOB

Die Avatare kommen in eine eigene Tabelle und werden als Bilder im BLOB Feld gespeichert.


So nun fangen meine Fragen an:
1) Welches Datenbanksystem verwende ich in diesem Fall am besten? MyISAM oder InnoDB?

2) Ich möchte noch zusätzliche Informationen zu jedem User speichern (Adresse, EMail, Geschlecht, ...) ist es besser diese in die Usertabelle hinzuzufügen oder sollte ich eine eigene Tabelle mit alle zusätzlichen Informationen machen die dann über die UserID verknüpft ist?

3) Wie kann ich die Kontaktliste am besten speichern? Ich habe mir überlegt eine Tabelle mit UserID und PartnerID. Aber angenommen ich habe 100.000 User jeder davon hat 10 Kontakte. Dann hätte diese Liste 1.000.000 Einträge. Ist das so denkbar oder gibt es eine viel bessere Lösung dafür?

ahm ja mehr fällt mir im Moment nicht ein
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat