database ontwerp, hulp nodig....

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

K

K

02/09/2007 20:48:00
Quote Anchor link
Goedenavond allen,

deelnemers aan een test kunnen scoren op 10 onderdelen, denk aan:

snelheid
kwaliteit
nauwkeurigheid
effectiviteit
efficientie
etc.

deze onderdelen zitten in een tabel:

onderdelen tabel
-------------------
onderdeel_id
naam


iedere deelnemer zit in een deelnemerstabel

deelnemer tabel
--------------------
deelnemer_id
naam
email
functie


nu wil ik de resultaten van de test opslaan, maar ik weet niet goed hoe ik dit slim kan doen....een idee dat ik heb is dit:

resultaat tabel
-------------------
resultaat_id
deelnemer_id
onderdeel_id
score

maar dan krijg ik voor iedere deelnemer die een test doet 10 entries en dus een enorme tabel als er 10000 man meedoet.....en ik moet veel queries doen op deze tabel, om gemiddelden te berekenen per onderdeel, per functie van deelnemer, etc...

heeft iemand een idee of ik iets over het hoofd zie of een denkfout maak?

Alvast bedankt,


//K
 
PHP hulp

PHP hulp

22/12/2024 09:15:00
 
Frank -

Frank -

02/09/2007 21:06:00
Quote Anchor link
Ziet er goed uit en ik zie niet in waarom dit problemen op zou moeten leveren. In tegendeel, nu kun je prachtige indexen maken op de resultaten en daar snel de gewenste data uithalen.

En 10 x 10.000 records = 100.000, dat is dus nog steeds 10x niks... Zet daar eens 1000x zoveel in, dan heb je het ergens over.
 
K

K

02/09/2007 21:38:00
Quote Anchor link
Ah ok! te gek!

Maar wat bedoel je precies met 'nu kun je prachtige indexen maken op de resultaten en daar snel de gewenste data uithalen.'

Is dat het koppelen van bijvoorbeeld het onderdeel_id in de resultaat tabel aan de onderdeel_naam?
 
Frank -

Frank -

02/09/2007 21:52:00
Quote Anchor link
Volgens VanDale:
Quote:
in·dex (de ~ (m.), ~en/indices)
1 register, inhoudsopgave
2 'index librorum prohibitorum', eertijds lijst van door de roomse curie verboden boeken
3 toegevoegd cijfertje of lettertje dat een grootheid in een bepaalde categorie rangschikt
4 verhoudingscijfer
5 [Belg., niet alg.] prijsindex => prijsindexcijfer

En hier een link naar de MySQL-handleiding: link

Wanneer je goede indexen aanmaakt en gebruikt, kun je queries wel een factor 1000 versnellen. Doe je dit echter verkeerd, kun je de complete database op zijn bek laten gaan... Performance is dan ver te zoeken.

Maar begin met een goed datamodel, dat is de basis voor ieder goed systeem Ga je nu nog niet druk maken over indexen, je hebt op dit moment geen enkel probleem met de perfomance.

En wanneer je geen problemen hebt, ga je ook niet op zoek naar oplossingen. Dat wordt ook lastig, een niet-bestaand probleem kun je niet oplossen.

Edit: Wanneer je noodgedwongen écht MySQL wilt gaan gebruiken, gebruik dan wel de innoDB-engine en vergeet niet om de juiste foreign key's aan te maken! Gekloot met MyISAM zou ik mijn grootste vijand nog niet aanraden...
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Martijn B

Martijn B

02/09/2007 22:22:00
Quote Anchor link
Quote:
Wanneer je noodgedwongen écht MySQL wilt gaan gebruiken


Noodgedwongen is dit dat ook de meest populaire web database ;D
 
Frank -

Frank -

03/09/2007 00:06:00
Quote Anchor link
Martijn! schreef op 02.09.2007 22:22:
Quote:
Wanneer je noodgedwongen écht MySQL wilt gaan gebruiken


Noodgedwongen is dit dat ook de meest populaire web database ;D
'noodgedwongen' mag je ook lezen als 'weet niet dat er andere/betere bestaan'...

Hét grote probleem, en direct ook voordeel voor beginnners, is dat MySQL de grootste fouten nog vergeeft. Dat jij een stuk tekst van 300 karakters in een veld van 255 karakters stopt, daar maalt MySQL niet om. In eerste instantie ziet de programmeur ook niet dat er e.e.a. goed fout gaat, maar later blijkt toch een deel van de data pleite te zijn... Maar ja, dan is het systeem al zo ver af dat men niet meer overstapt op een database die direct een keiharde foutmelding geeft. En dat zou je wel mogen verwachten! Hierdoor lijkt MySQL in eerste instantie een hele leuke database, maar onder motorkap zit een draak van een engine verstopt. Vroeg of laat krijg je daarmee te maken.

Wanneer je de boel instelt op STRICT-mode en je gebruikt versie 5 of hoger, wordt het al wel een stuk beter, maar het is nog steeds niet van het niveau zoals je dat van andere databases bent gewend.

Nu wordt het wel een beetje simpel een bash-MySQL-topic...
 
Martijn B

Martijn B

03/09/2007 09:59:00
Quote Anchor link
Quote:
Wanneer je de boel instelt op STRICT-mode en je gebruikt versie 5 of hoger, wordt het al wel een stuk beter, maar het is nog steeds niet van het niveau zoals je dat van andere databases bent gewend.


Ik ben het met je eens dat versie 5 een hele verbetering is. Ik heb ook wel eens wat gelezen over rare fouten in MySQL. Ook heb ik eens een lijstje gezien met fouten/rare dingen in PostGreSQL.

Maar ik zeg niet voor niets "web database". Ik ben er namelijk van overtuigt dat PostGreSQL meer een echte database wil zijn. MySQL is deze weg sinds versie 5 ook ingeslagen volgens mij.

Maar het is maar net wat je gewend bent en waar je de beschikking over hebt, dit is meestal MySQL.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.