Hi Chris,
ich entnehme mal dem ersten Post, dass die
CSV jeweils einen Header hat, in welchem die Spalten stehen?
Die Reihenfolge ist in der Regel fest?
Es gibt zu keinem Zeitpunkt eine wirklich mustergültige Datei, die das Programm intern kennt?
Man könnte hier natürlich das Ganze etwas auf die Spitze treiben und für jede Spalte das Mapping speichern in einer Zuordnungstabelle.
Somit könntest du später einfach schauen: Wurde irgendwann die Spalte "Zuname" schon mal zugeordnet?
CSV-Datei
Spaltenmapping
Code:
Vorname=firstname
Zuname=surname
Anrede=title
Neue CSV-Datei nach Monaten
Ergibt dann ein neues Mapping
Code:
Zuname=surname
Anrede=title
Für
Rufname gibt es noch kein Mapping, muss zugeordnet werden und ist somit beim nächsten Mal bekannt..
Das ist so die grobe Idee, die ich im Kopf hab.
Hierbei spielt die Struktur der
CSV keine Rolle, einzig das Mapping ist entscheidend und du musst nur die Spalten anzeigen/zuordnen lassen, die unklar sind.
Edit: Grad gesehen, dass Dejan-vu so etwas Ähnliches vorgeschlagen hat. Need some coffee
Anmerkung
Ich würde das Hinzufügen/Entfernen der Spalten in der Datenbank
nicht umsetzen.
Warum?
Weil das Programm damit dann auch umgehen müsste, sprich sich der Dynamik der Datenbank anpassen. Bei jedem Import könnte man theoretisch Felder entfernen lassen, die für die Funktionsweise der Anwendung relevant sind.