Proceduri Mysql pentru manechine - suprapunere în rusă

Am două mese cu magazin de bunuri online. Într-o singură cădere, numai bunurile de la diferiți furnizori cu ID-ul furnizorului. Al doilea include toate prețurile și disponibilitatea primei mese pentru fiecare produs, pentru fiecare depozit al furnizorului.







Deoarece SQL a apărut recent în viața mea la o asemenea scală, trebuie să ceară ajutor, nu pot să înțeleg totul singur.

Pe scurt despre datele din tabele:

Masa cu mărfurile arată așa

Tabel cu prețuri așa

După cum se poate observa în imagini, un produs poate avea mai multe prețuri diferite în diferite depozite. Scrierea unei proceduri pentru o medie a prețurilor la depozitele fiecărui furnizor.

Nu pot spune ca am scris bine, nu am suficienta experienta, este posibil si zaglyuchit la pretul sau cantitatea zero, dar inca functioneaza.

Executarea procedurii în script PHP - Selectez toate id-ul, in_id, sup_id din tabelul de articole și le înlocuiesc în procedura mea, sunând-o în bucla acestui eșantion. Aproape vorbind

Da, ideea este banală și nu cea mai productivă.

După terminarea procedurii, tabelul este completat corect

De fapt, întrebarea este: Acum, pentru 10 mii de articole din tabelul cu înregistrări de articole, executarea întregului script durează 10 minute (pe un laptop). Acest lucru nu este bun, înțeleg că dacă fuzionați PHP și SQL foreach într-o singură procedură, procesul va merge mult mai repede. Dar experiența nu este suficientă. Spuneți-mi, vă rog, metodele de optimizare a întregului "eșantion". A doua zi mă lupt cu cursorii și variabilele sql, rezultate și înțelegeri 0







Setați Aug 19 '16 la ora 1:40

Abordarea în care scriptul dvs. PHP rulează prin tabel și actualizează câmpul pentru fiecare înregistrare este, desigur, foarte lentă. 10 minute nu mai sunt atât de multe. Când masa devine mai mare, va trebui să așteptați mult mai mult.

Chiar trebuie să stocați un câmp cu un preț mediu? Dacă doriți să obțineți o listă de produse cu prețuri medii, puteți utiliza interogarea:

Puteți face o vizualizare pe baza interogării și reprezintă tabelul original, dar cu un câmp suplimentar care conține prețul mediu.

Toate prețurile pentru toate înregistrările sunt stocate în tabel. Este necesar să se calculeze prețul mediu, deoarece tabelele de mai sus nu sunt definitive. Deoarece datele din td_items de masă nu este unic (unul și același produs poate fi de la diferiți furnizori cu diferite sup_id și aceeași in_id), o altă procedură majoră le combină într-o singură masă finală, comparând prețurile între aceleași note (pe articol, modelul și marca) și expune minimul prețurilor medii, specificând ce vânzător este valabil pentru acest preț. - Andrew Koshkin 19 Aug '16 la 10:51

Am o singură întrebare - cum se face o corelare a tuturor rândurilor din tabelul td_items într-o procedură, excluzând această prelucrare în PHP. Acum iau toate înregistrările din tabel cu php, sortează prin ele și expun prețul. Pot efectua aceeași procedură direct în procedura SQL? - Andrew Koshkin 19 Aug 16 la 10:53







Articole similare

Trimiteți-le prietenilor: