# CSV File in Datenbank speichern!?



## stargate2k (11. Mrz 2014)

Hi,

ich habe eine Postgres Datenbank und ich würde darin gerne csv  files speichern können.. Die Frage ist jetzt wie mache ich das am besten. Die Dateien soll man am besten auch noch direkt in der Datenbank durchsuchen können.

Die CSV Datei ist dabei immer komma separiert also z.b :

date, New York, Sam Francisco
20111001, 63.4, 40.2, 20.6
20111002, 100.0, 200.0 300.0

Das Problem dabei ist dass die CSV Dateien dynamisch sind, es kann sein das eine CSV Datei 10 Spalten und 20 Zeilen hat oder auch weniger.. Die Maximale Spaltenanzahl könnte ich notfalls auf einen Festen wert setzen, dass z.b nur 20 Spalten erlaubt sind.. Die Zeilen können aber beliebig lang sein..

Die Frage ist jetzt wie bilde ich sowas am besten auf eine Datenbank ab, ich will dann in den Daten auch filtern können. Also z.b soll es mir alle Daten von "New York" zwischen Wert x und y liefern..

mfg stargate


----------



## stg (11. Mrz 2014)

Grundsätzlich könntest du das in mehrere 1:n-Relationen splitten. Ein File hat mehrere Spalten, jede Spalte hat mehrere Zeilen, wobei du zusätzlich zum Eintrag noch den Spalten bzw Zeilenindex speicherst, oder anderweitig die richtige Reihenfolge sicherstellst. 
Einfach die CSV-Datei als ganzes in die Datenbank zu schreiben, fällt jedenfalls vermutlich flach, da du ja auf Datenbankseite schon auf den Daten arbeiten möchtest. Da genaue Format der CSV-Datei ist aber dann nur noch für den Im- zw Export-Vorgang interessant.


----------

