Aktywne Wpisy

ViniciusZunior +177
90% meetingów w korpo można by anulować i nic by się nie stało
#pracait #programista15k #programowanie #korposwiat
#pracait #programista15k #programowanie #korposwiat

Teuvo +20
proszę mi wytłumaczyć dlaczego ciepłe powietrze przyśpieszone przez wiatrak robi się chłodne





- Mam sobie listę złożonych wniosków w panelu admina w różnych kategoriach
- Obok każdej kategorii chcę umieścić liczbę NOWYCH, nie rozpatrzonych przez admina wniosków
Wszystko to jest oparte na AngularJS, więc w Symfony jest to REST API.
I teraz nie wiem jak tą liczbę nowych wniosków wykonać.
Czy:
- wysyłać nowy request do API z liczbą nowych wniosków w danej kategorii (trochę głupie, nawet bardzo)
- wysyłać to do Angulara razem z obiektem kategorii, czyli np.
category_name: Sport
nierozpatrzone: 14
Ten drugi sposób uważam za bardziej poprawny, więc:
- jak wykonać to od strony Symfony, tj. w encji z kategorią wniosków dodać pole unread (które będzie bez adnotacji @ORM, czyli bez odzwierciedlenia w bazie) i później po pobraniu kategorii przepuścić je przez foreach i dopisać do tego pola "unread" liczbę nierozpatrzonych wniosków ? (⌐ ͡■ ͜ʖ ͡■) Januszowe bardzo, tak więc nie wiem w jaki sposób to rozwiązać :(
1. Rozumiem, że „wniosek” to jest Doctrine'owa encja (i tabelka w bazie)?
2. Rozumiem, że „kategoria” to jest Doctrine'owa encja (i tabelka w bazie)?
3. Rozumiem, że masz relację kategoria może posiadać wiele wniosków (one to many)?
4. Co to znaczy, że „wniosek” jest „rozpatrzony”?
relacja -> we wnioskach jest id kategorii, do ktorej przynalezy.
1. i 2. - tak
a.) kiedy pobierasz kategorię, zaciągać razem z nią wnioski i w pętli zliczyć ile pozostało nowych
b.) „keszować” sobie tę informację w kategorii – czyli do kategorii dołożyć dodatkową kolumnę i za każdym razem, gdy ustalasz jakiś wniosek, zwiększać/zmniejszać licznik dla kategorii
bma tę wadę, że musisz w kodzie pilnować czy aby zawsze kolumna w z „kategorii” jest aktualizowana przy zmianach we „wnioskach”. Może się to rozjechać.Ale za to, gdybyś tych wniosków miał dużo, można oszczędzić trochę procka/pamięci.
@Spake: Yep, jest to też sposób na optymalizację. Ale ja wychodzę z założenia, że wolę mieć jak najwięcej czystego kodu (niezależnego od infrastruktury), ale takiego, który mogę łatwo przetestować. W końcu implementacja jest prosta to i napisanie testu jest proste.
Optymalizuję dopiero jak zaczynają się problemy z wydajnością lub jestem pewien, że takie problemy się
Komentarz usunięty przez autora
$query = $em->createQueryBuilder()->select('a,(SELECT COUNT(b.id) FROM XYZ:Def b WHERE asd = 1) as count')
->from('Xyz:Abc','a')
->select('c,m,r,e,p')->getQuery()->getResult();
$events = $em->getRepository('AppBundle:Event')->findAll();
$view = $this->view($events, 200);
return $this->handleView($view);
events - te "kategorie", applications - "wnioski". Zwracam wszystkie events(kategorie) naraz, a nie po kolei. Dlatego to jest trochę trudniejsze i pole w encji wydawało mi się wcześniej lepsze. W takim wypadku jak to lepiej rozwiązać?
Jednocześnie, jeśli tych rekordów w kategorii nie jest specjalnie dużo i jeśli strona nie jest mega intensywnie używana (a nie jest, bo to adminownia), to prefereuję tak:
class@Spake: Nie wiem co to robi :P