Hoi,
Mijn dbase heeft de volgende structuur: game -> league -> war. Dus per gametype zijn er aantal leagues en in elke league worden er een aantal wars gespeeld. Elke tabel bevat dus de key van de vorige tabel (behalve voor de tabel game uiteraard, dat is de top). (1-N relatie)
Nu heb ik 3 queries: 1 voor de games, 1 voor alle leagues en 1 voor alle wars. Ik ben akkoord dat het aantal queries hier verminderd (zelfs tot 1 normaal gezien) kan worden, maar dan is de query (volgens mij) uitermate onderheving aan reduntantie, omdat ik in die ene query altijd opnieuw per rij de informatie over het gametype en over de league moet neerhalen. Vandaar heb ik het dus gedaan in 3 queries, zodat redundantie = 0%.
Nu maak ik gebruik van templates (jazeker!
) en geef ik alle informatie in 1 array door aan de template parser. Mijn array ziet er als volgt uit:
(ik heb overbodige velden weggelaten, dus alleen de structuur heb ik overgehouden). Zoals je ziet maak ik de sub-arrays ahv. de primary keys uit de database: per ID maak ik telkens een index die overeenkomt met de desbetreffende inhoud van de database. (vb. game_name, league_name, war_timestamp)
Echter bij het maken van deze array heb ik "moeilijkheden" met mijn array, en dit om volgende reden: ik moet steeds de vorige primary keys kennen, want anders kan ik de gegevens niet invullen in mijn array. Dus ik moet altijd mijn query zo opbouwen, dat ik altijd eindig aan de top (in dit geval de tabel game), want anders kan ik de gegevens niet in de array invullen.
Bijv:
query1: gametypes neerhalen
Geen problemen hier met deze query.
query2: leagues neerhalen
Geen problemen hier met deze query.
query3: wars neerhalen
Probleem: ik moet mijn query zo opbouwen, zodat hij "eindigt" bij de eerste tabel (game), want anders kan ik mijn resultaten van de query niet op de juiste plaats zetten, want ik ken de Y in $warListData[Y]['leagues']... niet.
Op zich is dat in dit geval niet zo'n probleem, maar stel dat ik nog relatie zoals seasons, maps, .. wil gaan inbouwen. Dan ga ik altijd "problemen" hebben vanaf de derde query.
Mijn vraag nu: is dit "normaal", of scheelt er iets aan .. mijn array-opbouw? mijn queries? structuur? Of hoe moet ik het dan wel aanpakken?
Alle suggesties zijn welkom!
Ik wil dit eerst goed hebben, vooraleer ik verder ga met het "echte" werk.
Ik hoop dat het duidelijk is
Mijn dbase heeft de volgende structuur: game -> league -> war. Dus per gametype zijn er aantal leagues en in elke league worden er een aantal wars gespeeld. Elke tabel bevat dus de key van de vorige tabel (behalve voor de tabel game uiteraard, dat is de top). (1-N relatie)
Nu heb ik 3 queries: 1 voor de games, 1 voor alle leagues en 1 voor alle wars. Ik ben akkoord dat het aantal queries hier verminderd (zelfs tot 1 normaal gezien) kan worden, maar dan is de query (volgens mij) uitermate onderheving aan reduntantie, omdat ik in die ene query altijd opnieuw per rij de informatie over het gametype en over de league moet neerhalen. Vandaar heb ik het dus gedaan in 3 queries, zodat redundantie = 0%.
Nu maak ik gebruik van templates (jazeker!
code:
1
2
3
4
5
6
7
8
9
| array $warListData:
-> ['game_id'] (x)
-> ['game_name']
-> ['leagues'] (x)
-> ['league_id'] (x)
-> ['league_name']
-> ['wars'] (x)
-> '[war_id'] (x)
-> ['war_timestamp'] |
(ik heb overbodige velden weggelaten, dus alleen de structuur heb ik overgehouden). Zoals je ziet maak ik de sub-arrays ahv. de primary keys uit de database: per ID maak ik telkens een index die overeenkomt met de desbetreffende inhoud van de database. (vb. game_name, league_name, war_timestamp)
Echter bij het maken van deze array heb ik "moeilijkheden" met mijn array, en dit om volgende reden: ik moet steeds de vorige primary keys kennen, want anders kan ik de gegevens niet invullen in mijn array. Dus ik moet altijd mijn query zo opbouwen, dat ik altijd eindig aan de top (in dit geval de tabel game), want anders kan ik de gegevens niet in de array invullen.
Bijv:
query1: gametypes neerhalen
Geen problemen hier met deze query.
query2: leagues neerhalen
Geen problemen hier met deze query.
query3: wars neerhalen
Probleem: ik moet mijn query zo opbouwen, zodat hij "eindigt" bij de eerste tabel (game), want anders kan ik mijn resultaten van de query niet op de juiste plaats zetten, want ik ken de Y in $warListData[Y]['leagues']... niet.
Op zich is dat in dit geval niet zo'n probleem, maar stel dat ik nog relatie zoals seasons, maps, .. wil gaan inbouwen. Dan ga ik altijd "problemen" hebben vanaf de derde query.
Mijn vraag nu: is dit "normaal", of scheelt er iets aan .. mijn array-opbouw? mijn queries? structuur? Of hoe moet ik het dan wel aanpakken?
Alle suggesties zijn welkom!
Ik hoop dat het duidelijk is