login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Crosstable data ophalen en uitlezen

Offline ikki007 - 29/01/2009 13:43
Avatar van ikki007Gouden medailleGouden medaille

PHP ver gevorderde
Hallo,


Ik heb wel een idee hoe ik dit kan gaan doen, maar ik wil er zeker van zijn dat het zo efficiënt mogelijk gebeurt, vandaar dat ik hier even een topic aanmaak.

Mijn database is als volgt opgebouwd:

- Aanbieders
* id
* naam
* infolink
* img
* shortcode

- Bestemmingen
* id
* naam

- Reizen
* bestemming
* aanbieder
* prijs
* info
* destination

Nu wordt er op de pagina een optionlist uitgelezen met alle waardes van de tabel Bestemmingen.
Zodra er een option geselecteerd wordt zullen alle reizen (reizen.bestemming == bestemmingen.id) opgehaald moeten worden.
Er zijn bijvoorbeeld 5 aanbieders de een reis naar Plek A aanbieden, dan zullen er 5 waardes in de tabel reizen met het id van Plek A zijn.

Dit moet dan uitgelezen worden als volgt (zodra er een bestemming geselecteerd is):

Aanbieder A: - (biedt de reis niet aan)
Aanbieder B: €599,-
Aanbieder C: €520,-
Aanbieder D: -
etc..

Ik ga dit waarschijnlijk met AJAX doen, maar ik vraag me af hoe ik met zo min mogelijk queries alles kan ophalen én bij de desbetreffende aanbieder uitlezen.


Mvg,
Jarno

5 antwoorden

Gesponsorde links
Offline ranco - 29/01/2009 15:48
Avatar van ranco PHP gevorderde Het juiste antwoord: Door alles in 1 tabel te gooien. Dan heb je zo min mogelijk queries/joins nodig.

De vraag is, waarom zou je dit willen doen?
Hoe vaak verwacht je dat deze queries opgevraagd gaan worden?

Als dit niet meer dan gemiddeld 5 keer per minuut is (voorbeeld) dan zal je prestatie niet echt dalen.

Alleen bij enorm drukke loads op de database zul je je pas druk moeten maken over denormalisatie (misschien wel eens interessant om over te gaan lezen / googlelen)
Offline Gerard - 29/01/2009 16:07
Avatar van Gerard Ouwe rakker Nooit, maar dan ook nooit een genormaliseerde database weer de-normaliseren.
Offline ikki007 - 29/01/2009 16:52
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Ik ben ook niet van plan het database ontwerp nu nog aan te passen, want zover ik het kan zien is het model gewoon goed.
Offline ranco - 29/01/2009 17:06 (laatste wijziging 29/01/2009 17:10)
Avatar van ranco PHP gevorderde
Gerard schreef:
Nooit, maar dan ook nooit een genormaliseerde database weer de-normaliseren.


Zonder normalisatie is denormalisatie niet toe te passen.
(uiteraard op papier) Er van uit gaande dus dat het datamodel nog niet gerealiseerd is / of al wordt gebruikt.
Citaat:
Denormaliseren is het intentioneel gedeeltelijk terugdraaien van de normalisatie van een gegevensmodel.


Zie bron Wikipedia.org: Denormalisatie

@Gerard: Ik zit ook op R1...BI.
Normalisatie en denormalisatie is iets wat wij tot in den treure behandeld hebben.

Citaat:
Ik ben ook niet van plan het database ontwerp nu nog aan te passen, want zover ik het kan zien is het model gewoon goed.


Prima,maar waarom vraag je dan advies?
Je inhoudelijke vraag ging over queries en performance.... een duidelijke connectie met je database layout dus.

Daarom de zwaai qua onderwerp naar je database layout.
Maar in mijn eerste post heb ik een aantal vragen gesteld...
Offline ikki007 - 29/01/2009 19:01
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
ranco schreef:
[..quote..]

Prima,maar waarom vraag je dan advies?
Je inhoudelijke vraag ging over queries en performance.... een duidelijke connectie met je database layout dus.

Daarom de zwaai qua onderwerp naar je database layout.
Maar in mijn eerste post heb ik een aantal vragen gesteld...


Misschien ben ik niet helemaal duidelijk geweest.
Ik probeerde advies te vragen over hoe ik de queries het beste kon opbouwen met dít databasemodel.

Op je vraag waarom ik het zou willen doen vraag ik me af wat je met "het" bedoelt.
Als dit over AJAX gaat is het omdat telkens de complete pagina reloaden in dit geval geen mooie optie is.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.187s