Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MYSQL:Einrichtung der Tabelle „Benutzer – Profildetails“ – Best Practice

Dinge, die Sie bei Ihren Ansätzen beachten sollten

Speichern des Benutzerprofils in der Benutzertabelle

  • Dies ist im Allgemeinen der schnellste Ansatz, um an die Profildaten zu gelangen, obwohl Sie hier möglicherweise viele redundante Daten enthalten (Spalten, die möglicherweise keine Informationen enthalten).
  • Schnell (insbesondere wenn Sie nur Spalten ziehen, die Sie aus der Datenbank benötigen)
  • Datenverschwendung
  • Schwieriger zu handhaben / zu warten (wohl mit Schnittstellen wie PHPMyAdmin)

Speichern des Benutzerprofils in User_Profile Tabelle 1-1 Beziehung zu Benutzern

  • Sollte mit einem Join immer noch recht schnell gehen und Sie können einige Datenredundanzen eliminieren, wenn Benutzerprofile nicht erstellt werden, es sei denn, ein Benutzer füllt eines aus.
  • Einfacher damit zu arbeiten
  • Etwas langsamer wegen Join (oder 2. Abfrage)

Speichern von Benutzerprofilen als Eigenschaften und Werte in Tabellen

*d.h. Tabelle zum Speichern möglicher Optionen, Tabelle zum Speichern von user_id, option_id und value*

  • Keine redundanten Daten gespeichert, alle Daten sind relevant
  • Normalste Methode
  • Langsamer beim Abrufen und Aktualisieren von Daten

Mein Eindruck ist, dass die meisten Websites die zweite Methode verwenden und Profilinformationen in einer zweiten Tabelle speichern, was bei den meisten größeren Websites üblich ist, um die Datenbank (Twitter, Facebook) zu denormalisieren, um eine höhere Leseleistung auf Kosten einer langsameren Schreibleistung zu erzielen.

Ich würde denken, dass das Speichern der Profilinformationen in einer zweiten Tabelle wahrscheinlich der richtige Weg ist, wenn Sie sich 50.000 Datensätze ansehen. Für eine optimale Leistung sollten Sie stark geschriebene Daten von stark gelesenen Daten trennen, um sicherzustellen, dass der Cache effektiv arbeiten kann.