Frage

gibt es 2 Millionen Nutzer Jeder Benutzer verfügt über 4 Tabellen. die Daten in 4 Tabellen nicht angehängt werden gehen und bleibt fix.

Die Struktur jeder Benutzer Tabellen werden gleich.

Zum Speichern der Daten dieser Nutzer in mysql muss ich eine Datenbank entwerfen.

benötige ich erstellen 2.000.000 Datenbanken mit jeweils 4 Tabellen?

jede Hilfe dankbar

die 4 Tabellen sind die die

  1. eingehende Anrufaufzeichnungen des Benutzers für 1 Monat
  2. incming sms Aufzeichnungen des Benutzers für 1 Monat
  3. ausgehende Anrufe Aufzeichnungen des Benutzers für 1 Monat
  4. abgehende SMS Aufzeichnungen des Benutzers für 1 Monat

die Anrufe Tabellen werden folgende Struktur haben

Datum Zeit Anzahl Dauer Gebühren

die eingehende SMS wird folgende Struktur hat

Datum Zeit Nummer

die abgehende SMS wird folgende Struktur

Datum Zeit Anzahl Gebühren

War es hilfreich?

Lösung

Dies ist eine SQL-Antipattern, dass ich nenne Metadaten Tribbles. Sie sehen nett und freundlich, aber bald werden sie mehrfach außer Kontrolle geraten.

Sobald Sie hören Sätze beginnen: „Ich habe eine identische Tabelle per ...“ oder „Ich habe eine identische Spalte per ...“, dann haben Sie wahrscheinlich Metadaten Tribbles.

Sie sollten, indem sie eine Datenbank mit vier Tabellen beginnen, und fügen Sie ein user_id Attribut zu jedem der vier Tabellen.

Es gibt Ausnahmefälle, wo Sie in separate Datenbanken pro Benutzer teilen wollen würde, aber sie sind Ausnahmen . Gehen Sie nicht dorthin, wenn Sie wissen, was Sie tun und kann beweisen, dass es notwendig sein würde.

Andere Tipps

Die meisten Datenbank-Servern (und Dateisysteme) nicht Instanzen behandeln, die viele einzelne Datenbanken erfordern. Ich vermute, dass das, was Sie tatsächlich vier Tabellen benötigen sind, die jeweils eine Zeile für jeden Benutzer enthält. Das ist eine völlig vernünftige Forderung.

Nein, Sie brauchen nicht zu 2.000.000 Datenbanken mit 4 Tabellen pro Person. Sie müssen nur 1 Datenbank, 4 Tabellen und eindeutige Benutzer-ID für jeden Benutzer.

So etwas wie:

users table:
| user_id (primary key) | username |

address table
| user_id (foreign key) | address  |

whatever table
| user_id (foreign key) | whatever |

Ich muss mich fragen, warum Sie benötigen, 4 Tabellen pro Benutzer? Hoffentlich verstehen Sie die Grundlagen dessen, was ich versuche, hier allerdings zu vermitteln.

Betrachten Sie dieses Beispiel - aus Daten entlehnt Warehousing - es ist eine Ebene Stern Kimball ist. Sehr vereinfachtes Modell, aber diese vier Tabellen decken Sie Ihren beschriebenen Bedürfnisse und vieles mehr.

Sie müssen nur eine Tabelle für Benutzer, Tabelle 1, Tabelle 2, Tabelle 3, Tabelle 4. dann, wenn Sie Daten zu tabelle1 eingeben müssen nur schließen die users_id zu tabelle1

TABLE 1                              USERS

ID   usersID     amount   quantity   ID   Name
1       1           200      2        1   John
2       1           400      3      

Sie können die Verbindung dann INNER JOIN mit durch seine table1.usersID = users.ID Alle Tabelle muss UserSid haben (Expect Benutzer-Tabelle, die ID hat), um sie zu verbinden

Hope Sie erhalten den Punkt

Nein, Sie brauchen nicht zu 2.000.000 Datenbanken!

Sie müssen tatsächlich zwei Millionen Instanzen für 4 Tabellen.

Natürlich sollten Sie eine relationale Datenbank gestalten, dass jede Tabelle für andere Tabellen ein relationales Attribut hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top