Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Kohana] Zasadność stosowania unii
Forum PHP.pl > Forum > PHP > Frameworki
Kedan
Witam.

Mam taką sytuację: w CMS-ie (korzystam z Kohany 3.1.x) mam kategorie do których, w relacji wiele-do-wielu, mam podpięte inne tabele. Listując daną kategorię, chcę wyświetlić wszystkie rekordy (teksty, galerie, podkategorie etc.) będące z nią w relacji. Nie chodzi mi o zwykłe JOIN'owanie - wyniki chcę mieć w jednej tablicy oraz mieć możliwość sortowania również po nazwie tabeli z której pobrany jest dany rekord. Normalnie ORM nie wspiera takich cudów - pomimo że na stronach Kohany znalazłem revision o uniach (http://dev.kohanaframework.org/projects/database/repository/revisions/2b4c6579e51e74c962b91e0db9bdcd48a33f5860) to nie udało mi się tego uruchomić. Napisałem własne metody generujące unię SQL pomiędzy (wskazanymi w $_has_many) tabelami i wykonuję je poprzez DB::instance()->query($zapytanie). Wszystko gra i buczy, jednak takie rozwiązanie może być kłopotliwe przy dalszej rozbudowie systemu.

Dlatego zastanawiam się, czy zamiast kombinacji z unią nie byłoby lepiej pobrać wyniki dla każdej tabeli z osobna i dopiero później, w PHP zrobić array_merge a wynik odpowiednio posortować i wyrzucać na ekran.

Chyba że ktoś ma jakiś sprytny sposób na unie w Kohana ORM?
matino
Nie wiem jak w Twoim przypadku, ale generalnie jedno zapytanie jest bardziej wydajne o kilku.
Ja bym pozostał przy rozwiązaniu, które sam napisałeś (ew. przerobił je na Query Builder) - nie ma w tym przecież nic złego, że w modelu dziedziczącym
po ORM robisz zapytania w inny sposób.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.