Cheatah: Datenbank Architektur Frage

Beitrag lesen

Hi,

Jeder User hat 2 Tables:

eieiei.

Als ich mit dem Projekt begonnen habe, dachte ich noch, alle Nachrichten für alle User in einem Table speichern ist doch total doof.

Falsch. Alle Nachrichten für alle User in _mehr_ als _insgesamt_ einer Tabelle zu speichern ist doof. Gleiches gilt für alle übrigen Daten: Alle Userdaten landen in einer einzigen Tabelle, alle Kontaktdaten landen in einer einzigen Tabelle. Genauer gesagt:

Alle gleichförmigen Daten gehören immer in ein und die selbe Tabelle.

Andersherum gehören Daten, die nicht gleichförmig sind, in eine andere Tabelle. Fällt Dir also beispielsweise ein, dass ein "blockierter" User etwas anderes ist als ein Kontakt, also mehr (oder weniger - jedenfalls andere) Daten benötigt, ist Dein derzeitiges Modell fehlerhaft: Du benötigst dann eine Tabelle "kontakt" und eine Tabelle "blockierung" (zudem "bookmark" und was immer Du noch in Deiner jetzigen Tabelle unterbringst).

Jetzt denke ich allerdings, bei 1 Million User wären in dieser Datenbank 2 Millionen Tables, und das ist ja noch doofer. :-(

Richtig. Und zwei Millionen mal n Indizes[1].

Vielleicht sollte ich die User alphabetisch ordnen.

Nein.

Habt ihr Erfahrung mit sowas?

Ja. Tabellen mit diversen Milliarden Datensätzen sind keine Unbekannten.

Wie macht man sowas professionel?

Wie oben beschrieben.

Cheatah

[1] Naja, eine Million mal (n plus m).

--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes