Was wäre ein besseres Datenbankdesign für eine Website in sozialen Netzwerken? Eine einzelne Tabelle mit mehr Spalten und weniger Zeilen oder mehrere Tabellen mit weniger Spalten, aber mehr Zeilen?
Beispiel: Ein Benutzer kann ein Update an seiner Pinnwand oder in einer Gruppe veröffentlichen.
Zwei Datenbankdesigns, an die ich denken kann, sind:
Design 1
UserPosts
- Ich würde
- Benutzeridentifikation
- Post
- Terminzeit
UserGroupPost :
- Ich würde
- Gruppen-ID
- Benutzeridentifikation
- Post
- Terminzeit
Mögliches Problem : Möglicherweise sind Verknüpfungen erforderlich, was (in Zukunft) eine langsame Abfrage sein kann.
Design 2
Beiträge :
- Ich würde
- Benutzeridentifikation
- Gruppen-ID
- Post
- datetime (wobei die Gruppen-ID null wäre, wenn Benutzer Beiträge an ihrer Pinnwand veröffentlichen)
Mögliches Problem : Das Durchlaufen eines großen Datensatzes kann (lange) dauern.
Wie kann ich eine bessere Leistung erzielen, wenn die Daten steigen? Gibt es einen anderen (besseren) Weg?