Autor | Zpráva | ||
---|---|---|---|
Neas Profil |
#1 · Zasláno: 14. 8. 2011, 02:13:37 · Upravil/a: Neas
Ahoj.
Zkoušel jsem vytvořit jakousi obdobu facebook zdi a pro výběr příspěvků v ní používám poměrně složitý sql dotaz se 4mi sub-selecty a left joinem. Limit má 30 posledních příspěvků. Problém je v tom, že v průběhu cyklu, používám ještě další 3 sql dotazy (dohromady tedy 91 dotazů), konkrétně jeden pro výběr 5ti náhodných lidí, kteří dali "líbí se mi", pro výběr 5ti lidí, co dali "nelíbí se mi" a jeden pro výběr odpovědí na příspěvky. Na každou z těchto odpovědí navíc využívám další 2 sql dotazy, opět pro výbery 5ti lidí, kteří dali "líbí se" resp. "nelíbí se". To dohromady dává n sql dotazů. Říkal jsem si, že je to až příliš mnoho dotazů, leč nevím, jak jejich počet redukovat. Chtěl bych se tedy zeptat, zda-li se nedá problematika s výběrem "líbí se", "nelíbí se" vyřešit nějak mnohem šikovněji. Děkuji za rady, zvláště zde si jich budu cenit. |
||
Joker Profil |
#2 · Zasláno: 14. 8. 2011, 07:36:02
Přesouvám z PHP do databází.
Na tohle nelze odpovědět bez znalosti struktury tabulek a těch SQL dotazů |
||
Neas Profil |
#3 · Zasláno: 14. 8. 2011, 13:46:58 · Upravil/a: Neas
používám takovouto strukturu:
(status - 1 = like, 0 = dislike) ![]() |
||
Kajman_ Profil * |
#4 · Zasláno: 14. 8. 2011, 20:11:03
Vyberete si třicet článků. Jejich id si načtete pro použití v dalších dotazech.
Vyberete komentáře ke všem třiceti článkům najednou v jednom dotaze. Vyberete uživatele líbí v jednom dotazu ke všem článkům najednou. Vyberete uživatele nelíbí v jednom dotazu ke všem článkům najednou. Vyberete uživatele líbí v jednom dotazu ke všem komentářům najednou. Vyberete uživatele nelíbí v jednom dotazu ke všem komentářům najednou. Takže vyjde 6 dotazů (kdy poslední 4 by se také daly dát asi do jednoho, v případě potřeby). Složitější možná bude omezení posledních čtyř dotazů na pět. V závislosti na očekávané četnosti, bych buď načetl všechny a v php náhodně vybral. Případně by se možná dal použít nějaký dotaz s uživateskými proměnnými (něco podobného je ve faq). http://php.vrana.cz/srovnani-dotazu-do-zavislych-tabulek.php |
||
Časová prodleva: 14 let
|
0