Hallo zusammen!
Für ein Taxi-Unternehmen, welches an 3 Standorten mit Fix-Preisen arbeitet, versuche ich eine Standort-übergreifende Online-Preisliste zu erstellen.
Zur Erstellung der richtigen Abfragen liegen die Daten allesamt in selber Tabelle, letztlich sind mehrere relationale Tabellen vorgesehen:
Start, Ziel und der/die Knoten werden über 'ort' und 'knoten' festgelegt, daraus sollte dann der Preis aus der DB geholt werden, wobei man bis zu X Datensätze zusammenfügen muss:
![upload_2020-5-31_10-46-42.png upload_2020-5-31_10-46-42.png](https://www.datenbankforum.com/data/attachments/1/1521-15bd35d18231f8bdeab09225c1d9ce93.jpg?hash=Fb010YIx-L)
Der User wählt lediglich aus Start- & Zielort aus, den Rest soll das Script erledigen.
Die 1. Abfrage ist noch einfach:
SELECT tarif AS preis
FROM preise_proto
WHERE (ort = '$start' AND knoten = '$ziel') OR (ort = '$ziel' AND knoten = '$start')
Weitere Abfragen habe ich bisher mit if/else in PHP sortiert, logischer wird´s aber sicherlich, wenn ich die Abhängigkeiten bereits in der SELECT-Anweisung platzieren kann, nur hier stehe ich leider völlig im Dunkeln.
Somit meine Frage nach Tipps, ev. ähnlichen Erfahrungen Eurerseits?
Danke vorab, Joe
Für ein Taxi-Unternehmen, welches an 3 Standorten mit Fix-Preisen arbeitet, versuche ich eine Standort-übergreifende Online-Preisliste zu erstellen.
Zur Erstellung der richtigen Abfragen liegen die Daten allesamt in selber Tabelle, letztlich sind mehrere relationale Tabellen vorgesehen:
Start, Ziel und der/die Knoten werden über 'ort' und 'knoten' festgelegt, daraus sollte dann der Preis aus der DB geholt werden, wobei man bis zu X Datensätze zusammenfügen muss:
- Die Standorte sind als "Knoten" definiert über welchen sich grundsätzliche der Fahrpreis 'tarif' ergibt
- Fahrten vom Knoten in eine Richtung werden über 'ort' mit gleicher Kategorie definiert => 'MAX(tarif)' der 2 gefundenen Einträge
- Fahrten über denselben Knoten in entgegen gesetzter Richtung haben versch. Kategorien => 'SUM(tarif)' der 2 gefundenen Einträge
- Fahrten wo Start & Ziel unterschiedliche Knoten haben benötigen als Verbindung eine Kombination mit einem Eintrag 'knonten_zu_knoten = 1' ebenso als 'SUM(tarif)'
- Sortierung nach Belegung & Zeit ist ohnehin logisch und momentan nicht relevant.
![upload_2020-5-31_10-46-42.png upload_2020-5-31_10-46-42.png](https://www.datenbankforum.com/data/attachments/1/1521-15bd35d18231f8bdeab09225c1d9ce93.jpg?hash=Fb010YIx-L)
Der User wählt lediglich aus Start- & Zielort aus, den Rest soll das Script erledigen.
Die 1. Abfrage ist noch einfach:
SELECT tarif AS preis
FROM preise_proto
WHERE (ort = '$start' AND knoten = '$ziel') OR (ort = '$ziel' AND knoten = '$start')
Weitere Abfragen habe ich bisher mit if/else in PHP sortiert, logischer wird´s aber sicherlich, wenn ich die Abhängigkeiten bereits in der SELECT-Anweisung platzieren kann, nur hier stehe ich leider völlig im Dunkeln.
Somit meine Frage nach Tipps, ev. ähnlichen Erfahrungen Eurerseits?
Danke vorab, Joe