Ist die Bestelltabelle basierend auf Benutzer-ID oder Bestell-ID in Tabellen unterteilt?

WBOY
Freigeben: 2016-10-17 09:30:05
Original
1788 Leute haben es durchsucht

Ist die Bestelltabelle basierend auf Benutzer-ID oder Bestell-ID in Tabellen unterteilt?

Antwortinhalt:

Ist die Bestelltabelle basierend auf Benutzer-ID oder Bestell-ID in Tabellen unterteilt?

Ein Benutzer kann mehrere Bestellungen haben, aufgeteilt nach Bestell-ID

uiserid und orderid haben eine Eins-zu-viele-Beziehung, daher ist der Primärschlüssel der Bestelltabelle orderid und der Fremdschlüssel userid

Der Vorteil der Verwendung von orderid zum Teilen von Tabellen besteht darin, dass die Größe jeder Tabelle nicht sehr unterschiedlich ist. Teilen Sie sie beispielsweise nach Zeit oder erstellen Sie eine neue Tabelle, wenn die Anzahl der Bestellungen einen bestimmten Wert erreicht Bei Abfragen wird die Benutzer-ID häufig als Suchbedingung verwendet, sodass viele Union-Operationen erforderlich sind.
Wenn die Benutzer-ID verwendet wird, ist die Situation nicht konstant und wächst mit der Zeit weiter. Der Vorteil besteht jedoch darin, dass die Abfrage eine einzelne Tabelle ist und sehr schnell erfolgt.
Also meine persönliche Meinung: Wenn nosql nicht zum Caching verwendet wird, wird empfohlen, die Benutzer-ID zum Teilen der Tabelle zu verwenden. Wenn Sie Leistung anstreben, können Sie Memcache zum Zwischenspeichern verwenden. Selbst wenn Sie orderid zum Teilen der Tabelle verwenden, wird der Cache direkt bei der zweiten Abfrage gelesen, sodass die Geschwindigkeit sehr hoch ist. Es ist benutzerfreundlich für Benutzer, die häufig Bestellungen überprüfen.

Trennen Sie Tabellen mithilfe der Bestell-ID

  1. orderid ist einfach zu speichern und die Datenbanklast ist relativ konsistent. Die Datenaggregation ist jedoch schwieriger.

  2. Benutzer-ID ist einfach zu aggregieren. Es kommt jedoch zu Problemen bei der Hotspot-Verteilung, was zu inkonsistenten Datentabellengrößen führt.

Entscheiden Sie selbst

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage