Ik wil als oefening een klein kassaprogramma maken met behulp van Visual c++ en mySQL. Ik ben nu aan het nadenken over het relationele model en zit met het volgende probleem.
In dit kassaprogramma moet een bon gemaakt worden. Om een bon te kunnen maken heb je minimaal 3 tabellen nodig:
Bongegevens, met daarin het bonnummer, datum, tijd, verkopernummer, klantnummer enz.
Artikelen, met daarin het artikelnummer, prijs en andere gegevens
Bonnen, met daarin bonnummer en artikelnummer
Als ik het op deze manier in een database zou zetten, zou dat prima gaan, ik kan bonnen maken, met daarop allerlei mooie artikelen. Maar dan gebeurt het volgende: Ik verkoop aan Jantje een appel voor 3 euro. Een uur later verlaag ik de prijs naar 2 euro. Als ik nu aan het einde van de dag mijn omzet opvraag, dan blijk ik 2 euro omgezet te hebben, terwijl ik 3 euro in kas heb.
Ik kan nu natuurlijk in de tabel bonnen ook de prijs gaan bijhouden, maar ik kan me voorstellen dat ook een ander deel van de artikelbeschrijving aangepast gaat worden en dan moet ik dus alle kolommen van de artikeltabel gaan bijhouden in de bonnentabel en dat lijkt me niet de bedoeling.
Alle boeken die ik bekijk gaan over normalisatie, maar nergens zie ik een vergelijkbaar probleem besproken. Weet iemand een boek dat hier wel op in gaat? Of kan iemand uitleggen hoe dit het best op te lossen is?
In dit kassaprogramma moet een bon gemaakt worden. Om een bon te kunnen maken heb je minimaal 3 tabellen nodig:
Bongegevens, met daarin het bonnummer, datum, tijd, verkopernummer, klantnummer enz.
Artikelen, met daarin het artikelnummer, prijs en andere gegevens
Bonnen, met daarin bonnummer en artikelnummer
Als ik het op deze manier in een database zou zetten, zou dat prima gaan, ik kan bonnen maken, met daarop allerlei mooie artikelen. Maar dan gebeurt het volgende: Ik verkoop aan Jantje een appel voor 3 euro. Een uur later verlaag ik de prijs naar 2 euro. Als ik nu aan het einde van de dag mijn omzet opvraag, dan blijk ik 2 euro omgezet te hebben, terwijl ik 3 euro in kas heb.
Ik kan nu natuurlijk in de tabel bonnen ook de prijs gaan bijhouden, maar ik kan me voorstellen dat ook een ander deel van de artikelbeschrijving aangepast gaat worden en dan moet ik dus alle kolommen van de artikeltabel gaan bijhouden in de bonnentabel en dat lijkt me niet de bedoeling.
Alle boeken die ik bekijk gaan over normalisatie, maar nergens zie ik een vergelijkbaar probleem besproken. Weet iemand een boek dat hier wel op in gaat? Of kan iemand uitleggen hoe dit het best op te lossen is?