ein Script um Tarife zu vergleichen
COM COM
- php
Hallo,
wir haben ein Problem in der Firma. Wir haben mehrere Versender (POST, Hermes...) die uns Spezialtarife für bestimmte Versandarten anbieten.
Aufgabe ist nun für jedes Päckchen den speziell günstigsten Anbieter zu ermitteln. Soweit die Aufgabenstellung.
Ich habe nun versucht alle Anbieter auf ein Maß (vergleichbarkeit) zu bringen. Und es ist mir wohl auch gelungen. Auf folgende Faktoren konnte ich das ganze begrenzen
Länge (von XXX bis XXX) cm
Breite (von XXX bis XXX) cm
Höhe (von XXX bis XXX) cm
Gewicht (bis XXX) g
Ziel (Deutschland, USA ....)
Preis XX
Tarif XXX
Versender XXX
Wie bringe ich das in eine ordentliche MYSQL Datenbankstruktur? So dass man diesen Inhalt gezielt abrufen kann? Gerade das "von / bis" bereitet mir Kopfschmerzen.
So dass man diesen Inhalt gezielt abrufen kann? Gerade das "von / bis" bereitet mir Kopfschmerzen.
BETWEEN? ;)
oder "> xxx AND < xxx"
Das würde ja voraussetzten das ich für jede denkbare Größe eine Datenbank Eintrag habe oder?
Ich glaube ich sehe die Struktur meiner Datenbank noch nicht vielleicht liegt es auch daran?
Der Nutzer hat ja nur seine Packetgröße W Lang, X Hoch, Y Breit, Z Schwer das Script soll ihm dann ja sagen welchen Versender / Tarif er nutzen soll.
So dass man diesen Inhalt gezielt abrufen kann? Gerade das "von / bis" bereitet mir Kopfschmerzen.
BETWEEN? ;)
oder "> xxx AND < xxx"
Das würde ja voraussetzten das ich für jede denkbare Größe eine Datenbank Eintrag habe oder?
Natürlich - alternativ kannst du die Geschichte ja auch auf ein minimales und ein maximales Volumen umrechnen.
Ich glaube ich sehe die Struktur meiner Datenbank noch nicht vielleicht liegt es auch daran?
Die gilt es natürlich erst mal zu entwerfen.
Der Nutzer hat ja nur seine Packetgröße W Lang, X Hoch, Y Breit, Z Schwer das Script soll ihm dann ja sagen welchen Versender / Tarif er nutzen soll.
Natürlich wird er noch Angaben machen müssen wie eben den Absendeort, den Zielort, versichert oder nicht, Expressendung oder nicht usw.
Hi,
Das würde ja voraussetzten das ich für jede denkbare Größe eine Datenbank Eintrag habe oder?
Natürlich - alternativ kannst du die Geschichte ja auch auf ein minimales und ein maximales Volumen umrechnen.
Nein, kannst du nicht.
Bspw. hat das DHL-Päckchen Maximal-Maße von 60cm×30cm×15cm.
Trotzdem werden sie dir vermutlich kein „Päckchen“ zum gleichen Tarif transportieren, das 1cm×1cm×27000cm misst.
MfG ChrisB
Bspw. hat das DHL-Päckchen Maximal-Maße von 60cm×30cm×15cm.
Trotzdem werden sie dir vermutlich kein „Päckchen“ zum gleichen Tarif transportieren, das 1cm×1cm×27000cm misst.
Das ist richtig.
Aber ggf. kann man so schneller eine Schnittmenge bilden indem man einfach pauschal alle Tarife ausschließt, die vom Volumen her schonmal garnicht passen.
Etwa wie bei einer Kollisionsberechnung mittels Bounding-Volumes wo auch zuerst mit einer einfachen geometrischen Struktur berechnet wird und wenns ums "eingemachte" geht exakt verglichen wird.
Hi,
Bspw. hat das DHL-Päckchen Maximal-Maße von 60cm×30cm×15cm.
Trotzdem werden sie dir vermutlich kein „Päckchen“ zum gleichen Tarif transportieren, das 1cm×1cm×27000cm misst.Das ist richtig.
Aber ggf. kann man so schneller eine Schnittmenge bilden indem man einfach pauschal alle Tarife ausschließt, die vom Volumen her schonmal garnicht passen.
Ich würde bei der vorliegenden Problemstellung keine derart grosse Anzahl an Datensätzen vermuten, dass die Datenbank eine Vergleich nach dem Volumen wesentlich schneller auswerten könnte, als drei Vergleichsoperationen bzgl. den einzelnen Maßen.
Etwa wie bei einer Kollisionsberechnung mittels Bounding-Volumes wo auch zuerst mit einer einfachen geometrischen Struktur berechnet wird und wenns ums "eingemachte" geht exakt verglichen wird.
Das (Kollisionsberechnung) ist aber ganz andere Grössenordnung von Problemkomplexität, wo solche Umwege aus Aufwands- und damit Performance-Gründen angebracht sind. Wir reden hier nicht von Paketmaß-Tripeln, die durch ein virtuelles Spielfeld fliegen, und wo wir in real-time abchecken müssen, ob unser Spielfigur-Paket mit diesen auf ihren jeweiligen Bewegungspfaden auf einer Raum-Zeit-Achse kollidiert und wenn ja, ob es ggf. hineinpasst ... ;-)
MfG ChrisB
Wir reden hier nicht von Paketmaß-Tripeln, die durch ein virtuelles Spielfeld fliegen, und wo wir in real-time abchecken müssen, ob unser Spielfigur-Paket mit diesen auf ihren jeweiligen Bewegungspfaden auf einer Raum-Zeit-Achse kollidiert und wenn ja, ob es ggf. hineinpasst ... ;-)
Das zeigt, dass du eigentlich keine Ahnung hast, wie Paketdienste heutzutage arbeiten :D
Hi,
Das würde ja voraussetzten das ich für jede denkbare Größe eine Datenbank Eintrag habe oder?
Nein - sondern einen Eintrag für einen Tarif, der sowohl die Mindest- also auch die Maximalmaße enthält.
Selektieren willst du von diesen Tarifen dann nur die jenigen, bei denen die Maße deines Päckchen über deren Mindest- und unter deren Höchstmaßen liegen, und das für alle drei Maße gleichzeitig. („Über“ und „unter“ natürlich unter Einbeziehung der Grenzwerte.)
Der Nutzer hat ja nur seine Packetgröße W Lang, X Hoch, Y Breit, Z Schwer das Script soll ihm dann ja sagen welchen Versender / Tarif er nutzen soll.
Na vermutlich den kleinsten von den Tarifen, der sowohl die Maße als auch das Gewicht erlaubt.
MfG ChrisB
Hello,
Ich habe nun versucht alle Anbieter auf ein Maß (vergleichbarkeit) zu bringen. Und es ist mir wohl auch gelungen. Auf folgende Faktoren konnte ich das ganze begrenzen
Länge (von XXX bis XXX) cm
Breite (von XXX bis XXX) cm
Höhe (von XXX bis XXX) cm
Gewicht (bis XXX) g
Ziel (Deutschland, USA ....)
Preis XX
Tarif XXX
Versender XXXWie bringe ich das in eine ordentliche MYSQL Datenbankstruktur? So dass man diesen Inhalt gezielt abrufen kann? Gerade das "von / bis" bereitet mir Kopfschmerzen.
Indem Du eine Anbietertabelle, eine Angebotstabelle, eine Pakettabelle und eine Eigenschaften-Stammtabelle und eine Eigenschaften-Angebots-Positionstabelle und eine Eigenschaften-Paket-Positionstabelle baust.
Nun müssen die Angebote durchducht werden, und diejenigen gefunden werden, deren Eigenschaften von denen des Paktes nicht gebrochen werden.
Ggf, fehlt noch eine Tabelle für die Aufnahme der Beziehung zwischen den Paketeigenschaften und den Angebots-Eigenschaften, sodass das Programm weiß, mit welchen Eigenschaften aus Angebot es die aus Paket vergleichen musss, also eine Klassifizierung.
Derartige Programme kosten, wenn sie gut gemacht sind und für sie auch regelmäßig neue Daten nachgeliefert werden, zwischen 5.000 und 8.000 Euro im Jahr.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg