MYSQL: Benutzer - Profil Details Tabelle Setup - Best Practice
Neben Ihrem normalen user-Tabelle "Benutzer"(user_id/user_email/user_pwd/etc), was ist der beste Weg zum speichern von Profil-Informationen?
Würde man nur Felder hinzufügen, die in der Tabelle user wie "user"
(user_id/user_email/user_pwd/user_firstname/user_lastname/user_views/etc)
oder erstellen Sie eine weitere Tabelle namens "profile"
(profile_id/user_id/user_firstname/user_lastname/user_views/etc)
oder gehen Sie für eine Tabelle mit den property-Definitionen und eine weitere Tabelle zum speichern dieser Werte?
Ich weiß, der Letzte ist am meisten flexibel, wie Sie können hinzufügen und entfernen, Felder leicht.
Aber für eine große Website (50k user) wäre das schnell?
InformationsquelleAutor der Frage renevdkooi | 2010-10-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dinge zu beachten, die mit Ihren Ansätzen
Das speichern von Benutzer-Profil im Benutzer-Tabelle
Das speichern von Benutzer-Profil in der User_Profile Tabelle 1-1 Beziehung zum Benutzer
Speichern von User-Profil Eigenschaften und Werte in Tabellen
*d.h. eine Tabelle zum speichern von Optionen möglich, die Tabelle zu speichern, user_id, option_id und mit dem Wert*
Mein Eindruck ist, dass die meisten websites verwenden Sie die 2. Methode und speichern von Profil-Informationen in einer zweiten Tabelle, den gemeinsamen, für die meisten größeren websites zu de-normalisieren der Datenbank (twitter, facebook) auf eine höhere lese-performance auf Kosten der langsameren schreib-performance.
Ich würde denken, dass die Beibehaltung der Profil-Informationen in einer zweiten Tabelle ist wahrscheinlich der Weg zu gehen, wenn Sie bei 50.000 Datensätzen. Für eine optimale Leistung, die Sie wollen, zu halten Daten, die geschrieben werden stark getrennt von Daten, die gelesen wird schwer, um zu gewährleisten cache effektiv arbeiten können.
InformationsquelleAutor der Antwort neopickaze
Tabelle mit den property-Definitionen ist nicht die gute Idee. Ich schlage drei Tabellen, um Daten zu speichern:
The better way to store Autorisierung und Authentifizierung von Daten ist LDAP.
InformationsquelleAutor der Antwort iddqd
Müssen Sie mehr als 3 Tabellen. Wie kann er das speichern von Daten wie mehrere E-Mails, mehrere Adressen, mehrere pädagogische Geschichten, mehrere "auf der Suche nach" Beziehungen etc. Jeder braucht seine eigene Zeile, vorausgesetzt, viele Werte werden lookups wie Stadt, sex-Vorliebe, Schule, Namen, etc. also entweder normalisieren voll oder gehen die noSQL-route, kein Punkt hängen in der Mitte, verlieren Sie das beste aus beiden Welten.
können Sie doppelte Zeilen, aber es wird nicht gut sein. soziale Netzwerke Leben nicht mit mehr als 50.000 Benutzer. entweder du wirst erfolgreich sein und Millionen von Anwendern oder werden Sie Abstürzen und empfängt es, weil die Ausführung dieser müssen Sie $$$, die nur kommen, wenn Sie über eine solide Kundenbasis. Mit nur 50.000 Benutzer für das Leben der Anleger nicht investieren, ad-Einnahmen nicht die Kosten und Sie schließen Sie es. So entwerfen wie Sie wollen das nächste facebook vom ersten Tag an. Think big!
InformationsquelleAutor der Antwort Brian