Beste tweakers,
Ik ben sinds kort bezig met het verwerken van data naar charts. Denk hierbij gewoon aan je standaard lijn, staaf en pie charts.
Hiervoor gebruik ik de google chars api: https://developers.google.com/chart/
Naar mijn gevoel is dit gewoon wel een stabiel platform, al heb ik liever de code (voor de charts) in eigen beheer. Enige tips zijn altijd hier welkom voor.
Maar dat is mijn vraag niet.
Ik zit met het punt: Hoe verwerk ik mijn data op de juiste manier om hiervan correcte charts te maken.
De query is vrij groot, en bevat tot nu toe 2 joins waarvan er waarschijnlijk nog 1 bij komt.
Uit mijn oogpunt zou ik het liefst 1 query oproepen om vervolgens meerdere 'data sets' hiervan te maken, in plaats van dat ik per chart een specifieke query ga aanroepen waarmee ik dus de server mee ga belasten.
Om een fictief voorbeeld te geven zou mijn array er zo uit zien:
Om even verder te gaan, komt bovenstaande array uit de query die je in feite zou kunt beschrijven:
Dus dit zijn - alle - inruilproducten van 1 klant.
Mijn "probleem" zit hem in het volgende:
- Een klant heeft meerdere producten
- Een klant kan per product meerdere ruilingen hebben gedaan
Van de data uit de array zou ik de volgende charts willen maken:
- Overzicht van alle ruilingen in een lijn chart gebaseerd op datum
- Overzicht per product hoeveel hij geruild wordt.
- Overzicht van de kosten van de inruil per ruil actie (dit kan variëren, fictief voorbeeld)
- Overzicht van de kosten per product categorie.
Mijn punt zit hem in het feit dat ik de array moet verwerken op allerlei gebieden.
Zo dien je in feite de gehele array door te lopen en te kijken of het huidige productnummer al voorbij gekomen is in de array (dit betekend dus 2+ ruilacties).
Op de 1 of andere manier (nu ik al een beetje ben begonnen) krijg ik het gevoel dat ik enorm ineffecient bezig ben. Niet dat 10 query's op de DB beter zouden zijn, maar om de array nou 2x te laten loopen (multiarray) en bij elk ditje en datje if statements te maken om zo nieuwe arrays te maken. Waarbij je vervolgens deze weer moet loopen voor eventuele sorts en de data opmaak naar je chart api / js /whatever je gebruikt.
Heeft iemand dit ooit eens gedaan, om van eigenlijk 1 dataset meerdere charts / outputs te maken, en dan wel zo efficiënt mogelijk?
Heeft iemand tips/tricks, ideeën of wat dan ook?
Alvast bedankt!
Ik ben sinds kort bezig met het verwerken van data naar charts. Denk hierbij gewoon aan je standaard lijn, staaf en pie charts.
Hiervoor gebruik ik de google chars api: https://developers.google.com/chart/
Naar mijn gevoel is dit gewoon wel een stabiel platform, al heb ik liever de code (voor de charts) in eigen beheer. Enige tips zijn altijd hier welkom voor.
Maar dat is mijn vraag niet.
Ik zit met het punt: Hoe verwerk ik mijn data op de juiste manier om hiervan correcte charts te maken.
De query is vrij groot, en bevat tot nu toe 2 joins waarvan er waarschijnlijk nog 1 bij komt.
Uit mijn oogpunt zou ik het liefst 1 query oproepen om vervolgens meerdere 'data sets' hiervan te maken, in plaats van dat ik per chart een specifieke query ga aanroepen waarmee ik dus de server mee ga belasten.
Om een fictief voorbeeld te geven zou mijn array er zo uit zien:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| [0] => - klantnummer - ordernummer - productnummer - datum-inruil - bedrag-aankoop - type product - product categorie [1] => - klantnummer - ordernummer - productnummer - datum-inruil - kosten-inruil - type product - product categorie |
Om even verder te gaan, komt bovenstaande array uit de query die je in feite zou kunt beschrijven:
code:
1
2
3
4
5
| //negeer de foutheid, het is puur in 'spreekvorm' Select 'bovenstaandewaardes FROM inruilproducten JOIN klanten on klantnummer JOIN producten on productnummer WHERE klantnummer = $uit-een-var-van-huidige-klant |
Dus dit zijn - alle - inruilproducten van 1 klant.
Mijn "probleem" zit hem in het volgende:
- Een klant heeft meerdere producten
- Een klant kan per product meerdere ruilingen hebben gedaan
Van de data uit de array zou ik de volgende charts willen maken:
- Overzicht van alle ruilingen in een lijn chart gebaseerd op datum
- Overzicht per product hoeveel hij geruild wordt.
- Overzicht van de kosten van de inruil per ruil actie (dit kan variëren, fictief voorbeeld)
- Overzicht van de kosten per product categorie.
Mijn punt zit hem in het feit dat ik de array moet verwerken op allerlei gebieden.
Zo dien je in feite de gehele array door te lopen en te kijken of het huidige productnummer al voorbij gekomen is in de array (dit betekend dus 2+ ruilacties).
Op de 1 of andere manier (nu ik al een beetje ben begonnen) krijg ik het gevoel dat ik enorm ineffecient bezig ben. Niet dat 10 query's op de DB beter zouden zijn, maar om de array nou 2x te laten loopen (multiarray) en bij elk ditje en datje if statements te maken om zo nieuwe arrays te maken. Waarbij je vervolgens deze weer moet loopen voor eventuele sorts en de data opmaak naar je chart api / js /whatever je gebruikt.
Heeft iemand dit ooit eens gedaan, om van eigenlijk 1 dataset meerdere charts / outputs te maken, en dan wel zo efficiënt mogelijk?
Heeft iemand tips/tricks, ideeën of wat dan ook?
Alvast bedankt!