Inhoud

Nog een voorbeeld: webwinkel

Om deze cursus database ontwerpen af te sluiten ontwerp ik hier een iets complexere database voor een webwinkel. Webwinkels zijn systemen die over het algemeen producten kunnen tonen, bestellingen kunnen opnemen en klantgegevens kunnen bijhouden. Dat is natuurlijk nog geen complete webwinkel, maar de essentie van het systeem is daarmee wel beschreven.

Enkele belangrijke spelers in dit systeem zijn dus deklant, hetproducten debestelling. Welke relaties bestaan er tussen deze zaken?Tussen klant en bestelling bestaat eenéén op veel relatie. Een klant kan 0, 1 of meerdere bestellingen plaatsen en andersom is een bestelling altijd gekoppeld aan precies 1 klant.

Tussen bestelling en product bestaat eenveel op veel relatie. Elke bestelling bestaat uit 1 of meer producten en elk product kan onderdeel zijn van 0,1 of meer bestellingen.

Cursus

Microsoft Access 2003 geeft de relaties weer zoals hierboven is afgebeeld. De relatie tussen klant en bestelling is eeneen op veelrelatie. Tussen bestelling en product bestaat eenveel op veelrelatie. De tabelbestelling_productis een koppeltabel die ervoor zorgt dat elk product aan meerdere bestellingen gekoppeld kan zijn en andersom dat elke bestelling uit meerdere producten kan bestaan. Merk op dat bestelling en product beide eeneen op veelrelatie met de koppeltabel hebben.

Let ook op de gegevens die zijn opgeslagen. In de klanttabel zijn (enkele) klantgegevens opgeslagen. "Da's logisch", zou Johan Cruijff zeggen en dat is het ook. In de bestellingentabel is het klantnummer opgenomen, zodat elke bestelling aan 1 klant gekoppeld is. Bovendien zijn de datum en tijd opgenomen. Dat zijn eigenschappen die bij de gehele bestelling horen.

In de producttabel is alleen de prijs exclusief BTW opgenomen. Als je de prijs exclusief BTW kan opvragen kun je daar in een programma makkelijk de prijs inclusief BTW uit berekenen. In de producttabel is uitsluitend informatie opgeslagen die uniek bij een product (product_id) hoort.

Merk ook op dat nergens een totaalbedrag voor de bestelling is opgenomen. Deze informatie isberekenbaar(af te leiden) en hoeft dus niet apart opgeslagen te worden. Het totaalbedrag vind je natuurlijk eenvoudig door de prijzen van alle producten die deel uitmaken van de bestelling op te tellen.