Experiența mea cu bazele de date este destul de limitată, motiv pentru care întreb aici care ar fi „standardul în industrie” pentru crearea de rapoarte de vânzări pe un anumit timeframe pentru fiecare produs, dintr-o bază de date posgres via graphql?
Concret setup-ul ar fi acesta: Products -- CartItems -- Orders -- OrderItems
.
Adică Products se transformă în CartItems în momentul în care sunt adăugate în Cart. După ce comanda e finalizată Cart-ul se transformă într-un Order care este compus din OrderItems (CartItems transformate în OrderItems).
Prin urmare în baza de date, printre multe alte, am așa:
- Product (tabela cu toate produsele aflate la vânzare)
- CartItem (produsele aflate în Cart).
- Order (tabele cu toate vânzările formate din OrderItems)
- OrderItem (produsele vândute).
Până acum obișnuiam să scot rapoarte lunare cu vânzările pe fiecare produs pur și simplu afișându-le într-o pagină în frontend, în urma a două query-uri: primul query după toate produsele dintr-un store, iar al doilea nested query având ca variabile numele fiecărui produs și data de început și sfârșit a lunii. Rezultatul era un aggregate.count al fiecărui orderItem vândut în respectiva perioadă de timp.
Funcționează metoda asta dar continui să mă gândesc că trebuie să existe și o variantă mai bună, care să nu fie chiar atât de încâlcită.