hallo, ik had graag een programmatje gemaakt met achterhorende database (voor school).
Het zou een reservatieprogrammatje moeten worden.

Bij mijn databasenormalisatie bekom ik dit

1ste tabel:
Klantnr
klantnaam
klantstraatEnNummer
postid

2de tabel
postid
postcode
gemeente

3de tabel
Klantnr
loginnaam
loginwachtwoord

4de tabel
Reservatienr
Reservatiedatum(dag.maand.jaar)
Reservatieuur

5de tabel
reservatienr
klantnr
betaald(ja/nee-veld)


is dit een correcte normalisatie?
ben ik nog belangerijke velden vergeten?
De 3e en eerste tabel kun je in ieder geval samenvoegen, die bevatten immers precies dezelfde soort informatie.
Reservatiedatum(dag.maand.jaar)
Reservatieuur
Deze twee kolommen voeg je samen tot 1 kolom van het type DATETIME waar je het tijdstip in het formaat 'yyyy-mm-dd hh:mm:ss' in opslaat.

Verder zet je in deze tabel ook het klantnummer (een reservatie hoort immers bij een klant) en ook de informatie of er al betaald is zou je in deze tabel kwijt kunnen.

Ook heeft een reservering volgens mij altijd een begin en eindtijd, je zou dus in die tabel twee kolommen van het type DATETIME nodig hebben...
idd, eindtijd erbij opnemen is een goed gedacht.

indien ik in tabel 4 klantnr erbij zet, wordt tabel 5 dan niet wat overbodig?

want ik dacht tabel 4 via tabel 5 aan tabel 1 te linken.

Maar normalisatie is niet zo een sterk punt bij mij :-p
Tabel 4 en 5 kun je samenvoegen...
Blanche schreef op 08.02.2008 18:46
Tabel 4 en 5 kun je samenvoegen...


indien de regels van normalisatie dan nog kloppen? zou het idd gemakkelijker zijn om ze samen te voegen.
1ste tabel:
2de tabel

Waardeloze namen, heb je helemaal niks aan. Verzin betere namen, namen die beschrijven welke data er in de tabel staat. Uiteraard alles in kleine letters, geen cijfers en eventueel een underscore _ . Voor de kolomnamen hou je dezelfde regels aan, dat zorgt voor duidelijkheid en dus minder bugs.

Ps. het wachtwoord sla je op als md5- of sha1-hash, wel zo veilig.

Reageren