Misschien komt het door mijn gebrek aan kennis, misschien komt het doordat het gewoon niet kan, maar in ieder geval kon ik er niets over vinden 
Zouden jullie eens kunnen kijken naar het voglende probleem:
Situatie:
Ik heb een tabel met computer configuraties, en aparte tabellen met geheugen, hardeschijven etc.
Het voorbeeld van mijn probleem is wat ingekort, om het duidelijk te houden.
Een computer kan meerdere monitoren bevatten.
Echter heb ik inmiddels een query gebakken waarmee 1 monitor wordt toegevoegt aan de resultaten, maar hoe voeg ik een evt. tweede monitor toe?
Het alternatief is dat ik 1 query doe met alle computers, en dan voor iedere pc apart een tweede query om de monitoren toe te voegen. Dit werkt wel, maar bij 100 computers
zou ik dan 100 queries * (1(hard disk) +1(monitor) +1(cdrom) +1(nic) +1(voeding)) etc
Dan heb je het al snel over meer dan 1000 queries voor 1 lijstje. Wat uitermate beroerd is voor de performance.
Overigens gebruik ik PHP als scripting taal (niet echt relevant, maar toch)
Zouden jullie eens kunnen kijken naar het voglende probleem:
Situatie:
Ik heb een tabel met computer configuraties, en aparte tabellen met geheugen, hardeschijven etc.
Het voorbeeld van mijn probleem is wat ingekort, om het duidelijk te houden.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| computers +-----------+ | comp_id |pk | comp_naam | | comp_merk | | comp_type | +-----------+ ref_c_m +-----------+ | comp_id |pk | mon_id |pk +-----------+ monitor +----------+ | mon_id |pk | mon_naam | | mon_merk | | mon_type | +----------+ |
Een computer kan meerdere monitoren bevatten.
Echter heb ik inmiddels een query gebakken waarmee 1 monitor wordt toegevoegt aan de resultaten, maar hoe voeg ik een evt. tweede monitor toe?
code:
1
2
3
4
5
6
7
8
| SELECT
*
FROM
computers
LEFT JOIN
ref_c_m ON computers.comp_id = ref_c_m.comp_id
Left JOIN
monitor ON ref_c_m.mon_id = monitor.mon_id |
Het alternatief is dat ik 1 query doe met alle computers, en dan voor iedere pc apart een tweede query om de monitoren toe te voegen. Dit werkt wel, maar bij 100 computers
zou ik dan 100 queries * (1(hard disk) +1(monitor) +1(cdrom) +1(nic) +1(voeding)) etc
Dan heb je het al snel over meer dan 1000 queries voor 1 lijstje. Wat uitermate beroerd is voor de performance.
Overigens gebruik ik PHP als scripting taal (niet echt relevant, maar toch)
Can`t live without the mods