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(...)
Poslednja izmena od salebab : 28. 12. 2011. u 15:05.
|