Artikelnummers die je van buiten krijgt, van de leveranciers bijvoorbeeld, heb je nodig op het moment dat je zelf bij hun gaat bestellen, maar kunnen nooit jouw sleutel bepalen. Al was het maar omdat elke leverancier zijn eigen stramien heeft, en de nummers dus nooit een uniforme vorm kunnen hebben. Bovendien bestaat de kans dat een nummer bij meerdere leveranciers voorkomt en dus niet uniek is. Dat neemt niet weg dat elk artikel dat
jij invoert, in de artikeltabel wél een uniek nummer kan, nee: moet hebben. En
die nummering bepaal jij natuurlijk helemaal zelf. Kortom: in een artikelentabel heb je wel degelijk een uniek artikelnummer dat jij bepaalt, en een artikelnummer dat bij de leverancier vandaan komt. En dat laatste is dan niet uniek. Uiteraard gebruik je in de koppelingen met andere tabellen je eigen sleutelveld.
Wat betreft je db opzet: ik zou dus een mutatietabel gebruiken voor de uitgifte waarin je bijhoudt wat de in- en uitgaande stromen zijn. Een Artikeltabel bevat dan alle artikelgegevens en bijvoorbeeld de minimum en maximum voorraad. Wat betreft magazijn: als je één magazijn(plek) hebt, dan kun je de opslagplek van het artikel best in de artikelentabel zetten. Heb je meerdere plekken nodig voor een artikel, en meerdere magazijnen, dan kun je daar een aparte tabel voor gebruiken, waar je dan uiteraard de mutatietabel ook aan hangt. Maar volgens mij moet je ook in een magazijntabel geen mutaties vastleggen, want mutaties zijn geen
eigenschap van een magazijn. In een magazijntabel leg je de indeling vast (kasten, planken etc) en wat daar ligt. Als een magazijn is ingedeeld, dan verandert er in beginsel ook niet zo veel aan lijkt me. Een artikel komt binnen, en gaat altijd naar dezelfde stelling en dezelfde plank. De beschikbare ruimte bepaalt hoeveel artikelen je kwijt kunt. Ook dat is een eigenschap die in de magazijntabel dus thuis hoort.
Stel dat je (even een Ikea voorbeeld) kast verkoopt, en je wilt er altijd 50 in voorraad hebben, en maximaal 200. Dan zijn dat dus de minimum en maximumwaarde die in de tabel Artikelen voorkomen. In het magazijn heb je dan rij 12 met stellingen 1-24 waar ruimte is voor 480 artikelen; dus 20 per stelling. Dan heb je dus minimaal 3 stellingen nodig, en maximaal 10. Dan koppel je dus in je magazijn tabel een aantal stellingen aan dat artikelnummer.
Begin je nu met een lege winkel (en dat doet iedereen natuurlijk) dan begin je dus met artikelen te bestellen. Vervolgens ga je artikelen uitgeven, die het totaal van de voorraad uiteraard beïnvloeden. Start je met 500 stuks, en verkoop je er 20, dan is de nieuwe voorraad 50-20=480. Volgende transactie is verkoop van 25 stuks, dus nieuwe voorraad is 455. Nieuwe bestelling: 50 stuks, dus de vooraad is dan 505. En zo verder. Kortom: op basis van totalen kun je altijd de voorraad zien en er is dus geen enkele noodzaak om dat ook nog eens apart op te slaan. Sterker nog: als de een of andere jodokus in de magazijntabel het getal 300 intypt, terwijl de berekening in mutaties 505 oplevert, dan heb je dus een probleem. En waarom zou je extra problemen toevoegen?
Je hebt natuurlijk ook dat er wel eens wat fout gaat, verkeerd geadministreerd wordt, kapot gaat etc. Daarom moet je ook inventarisaties kunnen opslaan. Ook geen probleem, dat doe je dus óók in de mutatietabel. Als het rapport aangeeft dat er 505 artikelen moeten zijn, en je komt niet verder dan 503 bij het tellen, dan voer je dus een correctie in van -2. En dan klopt je totaaltelling weer.
Gelieve dit antwoord niet te quooten (sowieso niet quooten als het niet nodig is); je kunt gewoon in het tekstvak <Snel reageren> beginnen te typen