Ich richte eine Weboberfläche für die Datenverwaltung ein. Benutzer laden CSV- oder ähnlich strukturierte Dateien hoch, und ich möchte diese in der Datenbank speichern, damit sie sie bearbeiten können - filtern, sortieren, grafisch darstellen usw.
Ich weiß nicht, wie ich das in einer Datenbank richtig modellieren soll. Ich habe mehrere Ideen, aber keine scheint der richtige Weg zu sein.
Erstellen Sie eine neue Tabelle für jede hochgeladene CSV. Dies würde bedeuten, dass jede Spalte entsprechend eingegeben werden könnte (Ganzzahlen, Zeichenfolgen, Datumsangaben usw.) und jeder Datensatz trivial einer Zeile in der CSV-Datei entsprechen würde. Dies scheint eine natürliche Konzeptualisierung des Problems zu sein - aber würde die Leistung zu einem Problem werden, wenn ich für jede hochgeladene Datei eine neue Tabelle erstellen müsste?
Erstellen Sie eine Tabelle, in der jeder Datensatz ein Dataset (CSV) darstellt, und andere Tabellen, in denen Datenpunkte die ID ihres Datasets in ihrem Datensatz haben. Dies würde bedeuten, dass alle Daten aus einem bestimmten Datensatz auf verschiedene Tabellen verteilt sind und es viel Redundanz geben würde (da jeder Datenpunkt die ID des Datensatzes speichern würde). Dies würde jedoch bedeuten, dass keine Tabellen pro Datensatz erstellt werden müssten.
Andere Variationen von 2. Die meisten meiner anderen Gedanken waren Variationen von Nummer 2 mit verschiedenen Indirektionsgraden.
Meine Frage lautet im Wesentlichen "Wie modelliere ich das richtig?", Das heißt, mit der Fähigkeit, vernünftig zu skalieren.
Die meisten Daten werden wissenschaftlich sein. Wie gehe ich also mit vielen Datensätzen von Größen um, die von trivial (z. B. 10 Spalten und 100 Zeilen) bis massiv (Hunderte von Spalten und Tausende / Millionen von Zeilen) variieren?
tl; dr: Wie modelliere ich beliebige Daten aus einer beliebigen Anzahl wohlgeformter CSVs in einer Datenbank und würde eine neue Tabelle für jede CSV akzeptabel funktionieren?