Aktywne Wpisy
xena_x +2
Oglądałam kanał kobiety ok. 35 lat, ma doktorat, byla dyrektorką w korporacji, prowadzi kanał na yt o tym że rzuciła korporację i nie pracuje, nie musi bo zarobiła tyle że ma wszystko, a gdyby chciała wrócić to przyjęliby ją z pocałowaniem ręki. Jest bogata, zadbana, z charakteru nie jest stereotypową korpo bitch, wydaje mi się że ma dystans do siebie, potrafi się z siebie śmiać, mówi bardziej z sensem niż te 20-letnie
Kogo wolałbyś?
- Bogata dyrektorka w korporacji, 35 lat 47.3% (176)
- Julia, studentka turystyki i rekreacji, 20 lat 52.7% (196)
toitakniemaznaczenia +194
mam dziś urodziny
#frenpill
#frenpill
- 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
b
ma 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
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 UnreadProposalsInCategoryCounter
{
public function countForCategory(Category $category)
{
@Spake: Nie wiem co to robi :P