Ankündigung

Einklappen
Keine Ankündigung bisher.

Per Webservice geholte Daten mit eigener DB integrieren

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Per Webservice geholte Daten mit eigener DB integrieren

    Hallo zusammen,

    ich habe eine PHP-Andwendung mit Datenbank-Anbindung geschrieben, die eine Fahrplanverwaltung darstellt. (Es gibt also eine Datenbank, in der Abfahrten zu unterschidelichen Zeitpunkten an diversen Stationen gespeichert sind und die man nach passenden Fahrten durchsuchen kann.)

    Ich möchte nun Fahrplandaten anderer Anbieter per Webservice holen und in die Suchergebnisse integrieren. Das heisst, die Fahrten der anderen Anbieter sollen bei entsprechender Suche mit in der -- nach Abfahrstszeit, Preis und Fahrtdauer sortierten -- Ergebnisliste mit auftauchen.

    Wie macht man sowas am geschicktesten? Da die Sachen mit denen in der DB zusammen sortiert werden sollen, müssen sie wohl auch -- zumindest temporär -- mit in meine DB auf dem Server.

    Ich habe mir schon etwas Gedanken gemacht und denke ja, es gibt prinzipiell (mindestens) zwei Möglichkeiten:

    1) Man fügt ein neues Feld "temporär (BOOL)" zur Abfahrtstabelle hinzu und schreibt die per Webservice geholten Daten mit TRUE rein (alle anderen mit FALSE), nach dem Query löscht man die temporären Sachen.
    2) Man macht eine zweite temporäre Tabelle, sucht per union select auch in der und löscht nach dem Query die ganze Tabelle wieder.

    Bei beiden Sachen muss man noch sicherstellen, dass das auch bei parallelen Queries von mehreren Clients (Webseitenbesuchern) funktioniert, zB, in dem man noch einen QueryID-Feld einfügt (bei Lösung 1) oder halt den Tabellennamen eindeutig für den Client wählt (bei Lösung 2).

    Oder gibt es eine übliche, bessere Lösung?

    Vielen Dank für alle Vorschläge!

  • #2
    Hallo,

    wenn du dir DAten von anderen Anbietern per Webservice holst haben die nichts mit deiner DAtenbank zu tun.

    Heist d.u musst das ganze auf Objektbasis in deiner Anwendung lösen, auch die Sortierung, du kannst deine eigenen Daten jedoch via Datenbankabfrage vorsortieren.

    Das ganze lässt sich im Prinzip so lösen, du hast eine Klasse / Objekt welches z.B. SearchList heist (du solltest natürlich bessere Namen wählen, mir fällt zum Thema nur grad nichts ein). Du stellst ein Interface zur Verfügung, welches alle SearchList Objekte implementieren müssen. Du kannst nun egal von welchen Anbieter die Daten kommen diese Objkte in dein SearchList Objekt aufnehmen und das ganze somit zur Verfügung stellen.

    Somit bist du vollkommen losgelöst von deiner Datenbank und deinen Daten und kannst alles zur Verfügung stellen, die Sortierung machst du natürlich auch in deinem SearchList Objekt, welches die einzelen Resultobjekte zur Verfügung stellt.

    Hier mal ein kleines Klassenbeispiel ohne Methoden oder so.

    PHP-Code:
    interface SearchResult
    {
        
    }

    class 
    ResultXml implements SearchResult
    {
        
    }

    class 
    ResultJson implements SearchResult
    {
        
    }

    class 
    SearchList
    {
        private 
    $searchResult null;
        
        private 
    $results;
        
        public function 
    __construct()
        {
            
    $results = new ArrayObject(array());
        }
        
        public function 
    addResultObject($keySearchResult $object
        {
            
    $results->offsetSet($kes$object);
            return 
    $this;
        }
        
        public function 
    getResult($key)
        {
            return 
    $results->offsetGet($key);
        }
        
        public function 
    results()
        {
            return 
    $results;
        }

    Solltest du zu dem kleinen MiniCode Beispiel Fragen haben, kann ich dann gern näher darauf eingehen, ich setze eben grad vorraus das du damit zurecht kommst als Fortgeschrittener.

    Gruß der Litter
    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
    [URL]http://www.lit-web.de[/URL]

    Kommentar


    • #3
      Eventuell sollte man damit anfangen die anderen Anbieter zu fragen ob man deren Daten überhaupt dieser Art verwenden darf?

      Gruß

      Claus
      Pre-Coffee-Posts sind mit Vorsicht zu geniessen!

      Kommentar


      • #4
        Zitat von Thallius Beitrag anzeigen
        Eventuell sollte man damit anfangen die anderen Anbieter zu fragen ob man deren Daten überhaupt dieser Art verwenden darf?

        Gruß

        Claus
        Das ist einer rechtliche Frage und trägt nicht wirklich was zum eigentlichen Diskussionsthema bei.

        Gruß Litter
        Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
        [URL]http://www.lit-web.de[/URL]

        Kommentar


        • #5
          Findet den Hinweis von Thallius nicht so ganz am Thema vorbei gelaufen.

          Kommentar

          Lädt...
          X