SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka |
|
Alati teme | Način prikaza |
28. 12. 2011. | #2 |
profesionalac
Qualified
|
Pre svega, u likes tabeli ti ne treba kolona like_user koja sadrži username usera, već je bolje da staviš user_id, kako bi ti tabela likes bila agregatna tabela između usera i postova.
Preporučujem ti da dodaš i kolonu "likes" u tabeli posts, koja je brojač lajkova i da taj brojač uvećavaš/smanjuješ na like/unlike. Ovo će ti drastično poboljšati performanse, jer više nemaš potrebu za COUNT nad tabelom likes, da bi video koliko ima lajkova za post. Sada jednostavnim upitom dobiješ sve postove i broj lajkova, nema potrebe za join-om. Ako želiš i spisak svih lajkova, možeš iz prvog upita izvući sve ID-eve postova, a zatim u drugom upitu izvući sve lajkove za sve te postove, spakovati ih u matricu i posle u view-u izvući za svaki post lajkove... Koristiš SELECT * FROM likes INNER JOIN users on users.uid = likes.user_id WHERE likes.post_id IN(...)
__________________
www.salebab.net Poslednja izmena od salebab : 28. 12. 2011. u 15:05. |
"Hvala" salebab za poruku: |
|
|