PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Millionentabelle in einer Datenbank erstellen?

Wenn Sie eine Million Tabellen in Ihrer Datenbank benötigen, machen Sie etwas falsch.

Tabellen sollen strukturell und konzeptionell unterschiedliche Daten darstellen. Und ich weigere mich zu glauben, dass Sie in Ihrer Anwendung mit einer Million verschiedener Konzepte arbeiten.

Manchmal glauben Anfänger, sie sollten zum Beispiel eine Tabelle pro Benutzer erstellen. Aber "ein Benutzer" ist ein Konzept, und Sie speichern dieselben Informationen für jeden Benutzer (z. B. Name, E-Mail, Benutzername, Passwort), also sollte es eins sein Tabelle, in der jeder Benutzer nur eine separate Zeile ist.

Es hört sich so an, als würden Sie einen ähnlichen Fehler machen, vielleicht nicht bei Benutzern, aber bei einer anderen Abstraktion, von der Sie viele Instanzen haben. Jede Instanz sollte eine Zeile in einer einzigen Tabelle sein.

Wenn Sie uns beschreiben, was Sie in einer Datenbank zu speichern versuchen, können wir Ihnen mit ziemlicher Sicherheit dabei helfen, herauszufinden, wie es sollte Tabellen zugeordnet werden.

Bearbeiten
Nachdem ich Ihre Kommentare gelesen habe (die eigentlich in die Frage selbst eingearbeitet werden sollten), hier meine Gedanken:

Wenn alle Daten auf die gleiche Weise strukturiert sind (als Tripel), könnten Sie einfach alles in einer einzigen Tabelle mit drei Spalten speichern und dann die erforderlichen Indizes für effiziente Suchen hinzufügen.

Wenn alle Prädikate im Voraus bekannt sind, können Sie könnten Erstellen Sie eine Tabelle pro Prädikat, aber ich bin mir nicht sicher, wie viel Sinn das machen würde.

Die sauberste Option wäre wahrscheinlich, 4 Tabellen zu haben:
(id, subject) , (id, predicate) , (id, object) ,(subjectid, predicateid, objectid) .