Access normalisatie GIP 6e jaar Informaticabeheer

Status
Niet open voor verdere reacties.

JVerbruggen

Nieuwe gebruiker
Lid geworden
21 jan 2015
Berichten
1
Hallo allemaal

Ik ben laatstejaar in de richting Informaticabeheer en moet voor mijn GIP een website maken met volledige webstore. Ik moet daarom dus een grote database schrijven waarin ik alle gegevens kan bewaren. Mijn keuze was een webstore voor een laptopwinkel. Ik heb deze database gemaakt, en om aan redundantie te werken heb ik dus een heel grote database met vele tabellen die met elkaar in relaties liggen. Alles wat niet sleutel uniek is heb ik steeds in een andere tabel gestoken om zo een link te leggen tussen gegevens om als er duizenden laptops in mijn database zitten ervoor te zorgen dat deze database steeds redelijk klein blijft.

Maar mijn leerkracht vond de structuur van mijn database niet in orde. Ze zegt dat deze niet genormaliseerd is en dat ik best opnieuw kan beginnen, maar na informatie die ik heb opgezocht vind ik toch dat mijn database totaal in orde is. Kan iemand eens zien naar mijn structuur en hierover zeggen wat er mis mee is, want ik heb geen idee. Hieronder een afbeelding van de relaties.

Relaties.png

Bij voorbaat dank :)
 
... en om aan redundantie te werken heb ik dus een heel grote database met vele tabellen die met elkaar in relaties liggen.
Databases zijn net mensen: je hebt een relatie, of je ligt in scheiding :).
Normaliseren is een proces dat je gebruikt om de dataredundantie tegen te gaan. Als je leerkracht vindt dat je hoofdtabel niet goed genormaliseerd is, dan moet ze dus aan kunnen geven in welke tabel je dan dubbele data hebt staan. Ik kan overigens ook wel wat bedenken, en ik zou het vermoedelijk niet zo hebben ingericht, maar dat heeft ook te maken met de manier waarop je de webshop inricht. In jouw voorbeeld kun je bijvoorbeeld als klant (waarom heet een klant eigenlijk 'user'? Dat is een vreemde benaming. Een User is een werknemer) maar één laptop per keer bestellen. Voor elke nieuwe laptop moet je een nieuwe bestelling maken. Dat is een keuze die je als winkel kan maken. Maar ik zou dat dus niet doen: ik zou de klant de mogelijkheid geven om door te winkelen, en dus meerdere artikelen in één bestelling op te nemen. Daarvoor heb je een extra tabel nodig.
Verder kun je een laptop vaak zelf samenstellen (kijk maar eens op de site van bto.eu voor inspiratie), en dan zie je dat je dan meestal wel meerdere harde schijven en/of meerdere geheugenbanken kunt toevoegen. Die zou je allemaal in je tabel tblLaptops kunnen opnemen, wat de normalisatie onderuit zou halen, dus aparte koppeltabellen voor die velden zijn dan weer aan te bevelen. Met een check op het aantal dat je kunt bestellen. Maar dat regel je wel op de bestelpagina.
Mocht je in Access blijven werken, dan kun je in deze db alle relaties wel weer verwijderen, want ze doen helemaal (en dan ook echt helemaal) niets. Maar dat wist je waarschijnlijk al :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan