Witam,
Natknąłem się na problem poniekąd natury filozoficznej. Muszę zrealizować dość skomplikowaną operację na danych z bazy i widzę dwie możliwości rozwiązania zadania:
Rozwiązanie 1. Pobrać wszystkie dane na raz, jednym zapytaniem i potem "obrobić" je w kodzie. Dokładnie chodzi o zsumowanie wartości produktów według grup do których należą, czyli pobieram wszystkie produkty jednym zapytaniem, następnie iteruję po nich i sumuję wartości przypisując je do tablicy z grupami produktów.
Rozwiązanie 2. Stworzyć dwa oddzielne widoki w bazie danych (tak mi wychodzi ze struktury bazy, każdy z nich będzie miał ok. dwa JOIN'y) a następnie w kodzie przy zapytaniu połączyć kolejnym JOIN'em te dwa widoki. To rozwiązanie nie wymaga iterowania po tablicy w kodzie, ani wykonywania żadnych innych "brzydkich" operacji na danych. To rozwiązanie podoba mi się bardziej ze względu na czystość w kodzie i łatwość utrzymania kodu, ale mam małe obawy co do wydajności tego podejścia.
Czy istnieją jakieś "best practices" w takich przypadkach? Lepiej dane "obrabiać" po stronie bazy danych, czy w kodzie?