Mailinglisten-Archive |
At 17:16 02.05.00 +0200, you wrote: >hmmm... aber ist diese loesung nun "schonender"? >Immerhin brauchst du nach diesem prinzip 1000 x 1000 >= 1.000.000 sql abfragen. (Bei angenommenen 1000 produkten) >Wenn ich 50 bestellnummern pro user abspeichere, durchlaufe >ich die tabelle der user 1000 mal (fuer jedes produkt nur einmal). >Habe allerdings den etwas hoeheren php aufwand, da ich alle 50 >produkte Y pro user, der produkt A gekauft hat, in das array >produkte[A,Y] addieren muss. Und das halt 1000 mal. >Oder ich mache mir noch mehr php-aufwand und durchlaufe die user tabelle >nur ein einziges mal und adde dabei alle produktkombinationen >auf einmal in das array. > >Hmmm... welcher weg ist eleganter? > >danke, >wilfried Hi, hab leider nicht den ganzen Thread gelesen, aber hier meine Idee: Du hast deine User Table und die Produkt Table. Wenn du also die Produkt Infos abrufst arbeitest du in dieser Table, warum speicherst du die "Hat auch noch gekauft.." Infos nicht in der Table mit? Du könntest entweder jeden Neu-Kauf eintragen und dann per PHP die häufigsten 3 ermitteln oder du überschreibst jedes mal das gesamte Feld mit den 3 häufigsten in der Reinfolge. Dann hättest du aber nicht die Info falls die "dazu-kauf-Produkte" wechseln. Also könntest du alle jemals dazu gekauften Produkte eintragen und mit einem Wert, der die Häufigkeit des Kaufs angibt, die "Rangliste" managen. Du hättest dann kein Produkt doppelt aber dennoch die genaue Rangliste. Wäre wohl auch die beste Lösung im Speicherplatz- / Aufwands- / Genauigkeitverhältnisses. Die PHP Arbeit teilt sich dann nämlich auf verschiedene Scripts auf und das sowieso am meisten aufgerufene Script zum Browsen der Produkte hat den kleinsten Anteil, weil es nur liest. mfg, Hendrik
php::bar PHP Wiki - Listenarchive