Daten zusammenführen anhand unterschiedlicher Attributen

FrazeColder

Lt. Commander
Registriert
Okt. 2013
Beiträge
1.721
Guten Tag zusammen,

ich stehe derzeit vor einem Problem. Und zwar habe ich mehrere CSV und XML Dateien, die jeweils Produkte eines Shops darstellen. Dabei verfügen einige Shops über die selben Produkte. Diese Produkte möchte ich nun "zusammenfügen", damit ich dann ein Produkt habe, welches übere mehrere Preise verfügt und möchte somit einen "Preisvergleich" anstellen.

Allerdings kann ich leider nicht den Preis oder den Namen als eindeutige Identifizierung eines Produktes wählen, da erstens der Preis schwanken kann bzw. dieses Attribut auf mehrere Produkte zutreffen kann und zweitens, da der Produktname leider auch von Shop zu Shop variiert...

Zwar habe ich immer das Produkt im Produktnamen erhalten, allerdings auch manchmal noch zusätzliche Wörte wie z.B. "Download", "(Wii)", "Reduziert" und so weiter...

Hier einmal alle Attribute die mir zur Verfügung stehen: (Eine Zeile spiegelt ein Shop wieder)
Unbenannt.JPG

Meine Frage ist nun, wie kann ich mein Vorhaben am besten umsetzten?
Da die XML und CSV Dateien leider immer aktuell bleiben müssen und ich die von einer URL abrufe, kann ich die nicht modifizieren - Wie würdet ihr das umsetzten?

Meine Idee wäre folgende:
Ich würde den 3. Shop als Grundlage nehmen und daraus eine neue XML Datei erzeugen. Aus dem Grund den 3. Shop, da ich Kategorie wichtiger finde (nicht vorhanden im 4. Shop), als das ich nicht die Anzahl oder Auslieferungszeit habe, wie beim 3. Shop. Jetzt müsste man irgendwie die Links und Preise aus den anderen Shops in die neu erzeugte XML Datei einfügen können. Allerdings so, dass auch die richtigen Links und Preise zu dem jeweiligen Produkt hinzugefügt werden, da ja leider die Namen nicht eindeutig sind. Da komme ich leide nicht mehr weiter...

Ich würde mich sehr über eine Antwort und Hilfe freuen!
Mit freundlichen Grüßen und Vielen Dank!
 
Und was willst du damit tun? Was ist das Ergebnis? Was für eine Technologie steht dir zur Verfügung bzw. muss eingesetzt sein?
Wenn ich das oft brauchen würde und es auf Knopfdruck irgendetwas ausspucken sollte, würde ich mir ein Werkzeug programmieren, das flexibel über eine Art config / Definitionsdatei solche Daten abrufen und auswerten kann. Das Grundgerüst ist ein Objekt, dass alle denkbaren Eigenschaften hat, das wird dann je nachdem was zur Verfügung steht gefüllt.
Hast du alles eingelesen, kannst du Comparer schreiben, die z.B. Namensteile vergleichen. Das ist aber u.U. nicht ganz trivial, du willst ja nicht, dass alles mit "(Wii)" als dasselbe Produkt behandelt wird.

Der output ist dann beliebig: direkte Anzeigen, Auswertungen, Exceldateien, was auch immer.
 
Könntest du das ein bisschen genauer erläutern? - Was meinst du mit config / Definitionsdatei meinst?
 
Damit meinte ich nur, dass ich nicht jeden Shop hardcoden würde - hängt natürlich auch vom Input ab.
Z.B. könnte eine "Shop-Definition" enthalten:
- Quelle: Downloadlink
- Shop-Infos (Name etc.)
- Datenquellen für die einzelnen Attribute, also XML-Nodes, CSV-Spalte o.ä.

Dauert etwas länger, lohnt sich aber wenn das etwas langfristiges ist.
Wenn ein Kunde mit solch einem Wunsch zu mir kommen würde, wäre das daher meine erste Idee. Da kann sich so schnell was an den Datenquellen ändern, dann kommt noch was dazu oder er will eine pdf-Ausgabe. Ist natürlich nicht an einem Nachmittag gemacht.
Aber das hängt wie gesagt von deiner Zielsetzung ab, also davon wie aufwändig, mächtig, flexibel das sein soll und der generell gewünschte Workflow.
 
Zuletzt bearbeitet:
Mhh... ich melde mich die Tage nochmal. Versuche das mal zu implementieren.

Also der soll jeden Tag einmal die Preise natürlich abfragen. Meine Idee wäre eben, Shop 3 als Grundlage zu nehmen, da dieser die meisten Informationen über ein Produkt enthält und dort dann die Links und Preise der anderen Shops mit einzubauen. Allerdings weiß ich leider nicht so ganz, wie ich das machen kann...
 
Das Hauptproblem ist doch die Erkennung der Produkte. Wenn die funktioniert, kannst Du anhand dessen die Daten der verschiedenen Shops zusammenführen und hast eine übergeordnete Datenstruktur (oder Datenbank) mit allen gewünschten Daten, die Du entsprechend auswerten kannst.

Aber selbst wenn Du es anders machen möchtest. Was ist Dein konkretes Problem bei der Umsetzung?
 
Ich dachte, ihr könnt mir evtl. noch weiterhelfen und habt andere Ideen, wie ich das Umsetzten kann. Sprich einen anderen weg, einen PK zu bestimmen
 
Die Erkennung geht offensichtlich nur über den Produktnamen, da dies die einzige statische Information ist, die in allen Datenquellen vorkommt.

Wenn die Namen nicht überall irgendwie vergleichbar sind (z.B. in dem man auf übereinstimmende Teilbereiche prüft), so dass eine Übereinstimmung gefunden werden kann, ist das Problem nicht (vollständig) zu lösen.
 
Er meint, dass Du danach suchen sollst! Aber erstens unterliegen die Abfragen Beschränkungen. Vor allem liefert sie aber wohl nicht immer ein eindeutiges Ergebnis.
 
Zurück
Oben