Antwort #3 am: 25. Mai 2015, 10:10:19
So wie der Hendrik das vorschlägt muss man ja trotzdem mit Schleifen arbeiten und ruft u.U. die Abfrgen für die Details zig-fach auf und erzeugt damit eine permanente Last auf dem SQL-Server. Das ist ja auch die Lösung die mir einfiel, die bedeutet aber bei 100 Kunden mit je 3 Bestellungen und je 5 Artikel/Bestellung am Ende 1 Abfrage für die Kunden 100 Abfragen für die Bestellungen und 100x3 Abfragen für die Artikel. Der SQL-Server muss also 401 Abfragen ausführen um eine relativ kleine Datenmenge zu liefern.
In .NET würde ich dafür nur 3 Abfragen benötigen, diese in 1 Dataset schreiben und die Tabellen im Dataset verknüpfen und durch die Hierarchien navigieren ohne weiter SQL-Abfrage. Hierarchische Arrays (v.a. deren Erstellung) sind mir in PHP aber nicht über den Weg gelaufen.
Jetzt würde man natürlich sagen können ich soll nicht alle Daten abrufen, sondern nur den einen Kunden. Das kann aber in meinem Fall zu einer langen Antwortzeit führen.
Szenario:
SQL-Server/PHP-Anwendung1 bei Hoster A
PHP-Anwendung2 bei Hoster B
PHP-Anwendung2 ruft via REST (PHP-Anwendung1) Daten beim SQL-Server ab.
Wenn dann für jede Anfrage ein HTTP-Request abgesetzt werden muss, kann das u. U. ewig dauern im o. g. Fall könnten das 400 Anfragen mehr sein. Daher alle Daten auf einmal an PHP-Anwendung2 senden und alle Filter/Such/Sortierungen dort ausführen.