Zur Boardunity Forenstartseite
  #1  
Alt 02.02.2004, 12:03
Benutzerbild von Nev
Nev Nev ist offline
Sven M. Maderbacher
 
Registriert seit: 10.2003
Ort: Österreich / Wien
Beiträge: 60

Intelligenter DatenImport von CSV bzw. XML


Hi @ll

Ich habe wieder mal eine kleine Denkaufgabe:
Intelligenter DatenImport von CSV bzw. XML

Was ich drunter verstehe:
Der User hat einen Offline-Datenbestand und will diesen mit dem Online-Datenbestand abgleichen.
Er lädt es als Datei hinauf, wobei er die Art (XML/ CSV) angibt, da es 2 verschiedene Paar Schuhe sind ;-)

Das hab ich mir dazu überlegt:
Die erste Zeile der CSV wird ausgelesen.
Die Felder werden untereinander ausgegeben, daneben sind die Felder aus der DB jeweils in einer Select-Box
Das hat den Sinn das man die Felder Zuweisen kann, kann ja sein, das die Daten-Köpfe nicht gleich sind.

Nun erfolgt ein Zwischenschritt: Es wird überprüft ob kein DB-Feld doppelt vorkommt, ansonsten zurück an den Start.

Nun kommt das Hauptproblem -> der eigendliche Abgleich
Da ja bestehende Daten vorhanden sind, sollten diese auch weiter bestehn beleiben, aber Änderungen der Datensätze trotzdem vorgenommen werden.

Ich habe mir überlegt ob man das nicht mit Regeln bewerkstelligen könnte?
d.h.: Der User gibt an, wer von den 2 Datenbeständen stärker ist.

Aber trotzdem bleibt das Problem mit Änderungen in einem Datensatz bestehn.

* Wie erkenne ich einen bestehenden Datensatz?
* Wie könnte man die SQL-Anzahl minimieren.
* Genereller Ansatz

PS: Es geht da nicht nur um ein Paar Datensätze, sondern um so 5.000++
Es sind Personen Daten!

Für Ideen bzw Ansätze habe ich immer ein offenes Ohr.
__________________
Sven-Marcus Maderbacher
Cu l8er
Nev the XxX

Projekte:
www.Nev-Hilft.de die Seite für Coder
Master of www.Burnworld.de
  #2  
Alt 02.02.2004, 16:48
Benutzerbild von Michael Przybyla
Mitglied
 
Registriert seit: 02.2003
Beiträge: 184
Ich fasse nochmal zusammen.

1. Anwender arbeitet Offline und verändert bzw. fügt Datensätze hinzu.
2. Der _gesammte Datenbestand_, kann vom Anwender als XML oder CSV exportiert werden.

Wenn du es dir nun ganz einfach machen willst, sprich ohne einem Datensatz eine höhere Priorität zuzuweisen, dann kannst du folgendermassen vorgehen.

1. CSV/XML Datei parsen.
2. Daraus _einen Query_ generieren ->
INSERT INTO mytable (myvalue) VALUES ('a'), ('b')
anstelle von
INSERT INTO mytable (myvalue) VALUES ('a');
INSERT INTO mytable (myvalue) VALUES ('a')
3. Benutze (falls mysql 4.1.0 vorhanden)
INSERT INTO mytable (myvalue) VALUES ('a') ON DUPLICATE KEY UPDATE myvalue = myvalue;


Sollte das mit MySQL nicht zutreffen, dann melde dich einfach nochmal.

Wenn jetzt der Anwender Offline Daten löscht, dann musst du etwas weitergehen.

Ich gehe davon aus dass du Primary Keys benutzt.
1. Alle IDs der Online/Offline Datenbank in ein array laden.
2. Alle IDs von dem Online Array löschen, die auch im Offline Array vorhanden sind.
3. DELETE FROM mytable WHERE id IN(das_array_mit_den_ids);

  #3  
Alt 02.02.2004, 17:33
Benutzerbild von Nev
Nev Nev ist offline
Sven M. Maderbacher
 
Registriert seit: 10.2003
Ort: Österreich / Wien
Beiträge: 60
Hi CannabisCow

Danke für deine Ausführung.

Jo mit der MySql-Db hattest du recht.

Mein Problem ist, das ich in den Offline-Datenbestand keine Keys habe.

Das ganze wird kunden zur Verfügung gestellt d.h. die Daten kommen aus irgendwelchen Quellen daher.

Aber Ansatzt mit den mehreren Inserts mittels 1 Query is ned schlecht.

Danke vorerst mal.

__________________
Sven-Marcus Maderbacher
Cu l8er
Nev the XxX

Projekte:
www.Nev-Hilft.de die Seite für Coder
Master of www.Burnworld.de
  #4  
Alt 02.02.2004, 18:41
Benutzerbild von Michael Przybyla
Mitglied
 
Registriert seit: 02.2003
Beiträge: 184
Zitat:
Zitat von Nev
Mein Problem ist, das ich in den Offline-Datenbestand keine Keys habe.

Das ganze wird kunden zur Verfügung gestellt d.h. die Daten kommen aus irgendwelchen Quellen daher.
Verstehe ich nicht so ganz.
Könntest du das erläutern?

  #5  
Alt 02.02.2004, 18:47
Benutzerbild von Nev
Nev Nev ist offline
Sven M. Maderbacher
 
Registriert seit: 10.2003
Ort: Österreich / Wien
Beiträge: 60
Hi @gain

das ist ein B2B (Business to Business) Tool.
d.h. Firmen kaufen bei uns dieses Tool um Ihre Kunden zu verwalten.

Über die Eigenheiten des Projekt kann ich leider ned mehr sagen (*verboten*)

In dem Tool sind schon Datenbestände, nun können die Kunden weitere hinzufügen bzw. abgleichen.
Da aus verschiedensten System bzw. verschiedenste Leute die Daten zurverfügung stellen, kann es vorkommen, das Key vorhanden da sind, oder auch ned.

Ich hoffe ich habe es erklären können.

__________________
Sven-Marcus Maderbacher
Cu l8er
Nev the XxX

Projekte:
www.Nev-Hilft.de die Seite für Coder
Master of www.Burnworld.de
Antwort


Stichworte
-

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
Gehe zu






1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25