M_N_M
Legacy Member
Hallo,
ik heb een vraagje omtrent normalisatie.
Ik zal (vereenvoudigd) uitleggen hoe mijn database eruit ziet.
Ik heb 3 beheerstabellen:
- tabel1 met het artikelbestand:
ID autoint (primary key en dus aanpasbaar)
Artikelnummer (unique key)
Omschrijving
<nog wat randinfo bv type label, grondstof of eindproduct, ...>
- tabel2 met mogelijke informatie die je aan een artikel kan hangen:
ID autoint (primary key en dus niet aanpasbaar)
Informatie (unique key)
Mogelijke waarden: magazijn, THT, type pallet, ...
- tabel3 waarbij men kan opgeven welke informatie er moet opgevraagd worden bij een aanmelding van een artikel:
ID autoinit (primary key en dus niet aanpasbaar)
ID_artikel
ID_info
<nog wat extra velden die niet van belang zijn bv "verplicht in te geven">
De unique key is hier de combinatie van artikel en info.
Met deze tabel definieer je dus dat je bij artikel <x> zowel info "THT" als "magazijn" moet opvragen.
Hierboven zijn de beheerstabellen en kwa normalisatie zit dat volgens mij wel goed (nergens dubbele info gebruikt en telkens gewerkt met ID).
Ik stel mij echter de vraag of ik bij mijn HISTORIEK tabellen ook moet werken met id's of daar met de effectieve waarden?
Wat bedoel ik met "historiek": als men effectief zegt, ik ga nu 100 stuks van artikel <x> maken, dan wordt dat gelogd in historiek met een unieke code (jaar+maand+volgnummer) met daarin de gelinkte informatie uit het beheer)
Bv:
historiek tabel 1 (artikel) bevat bijvoorbeeld zo'n record:
2010020001 artikel x omschrijving x <extra info zoals aanmeldtijdstip, persoon, ..>
historiek tabel 2 (info artikel) bevat bijvoorbeeld volgende records:
2010020001 magazijn test (uniek nummer, info, waarde)
2010020001 THT 01/01/2011 (uniek nummer, info, waarde)
Mijn vraag: zou ik het doen zoals hierboven of zou ik in de historiek tabellen ook id's wegschrijven?
Kwa normalisatie lijkt mij dat het beste maar ik stel mij dan toch de vraag : wat als men het beheer gaat aanpassen, dan gaat de historiek ineens mee wijzigen?! (bv men zegt "THT" is vanaf vandaag "pallettype"). Aangezien ik in mijn historiek werk met een "ID", zal het dus lijken of al mijn oude aanmeldingen onder "pallettype" aangemeld zijn ipv "THT" ?!
Ik zou natuurlijk kunnen afblokken dat men het beheer niet meer kan wijzigen van zodra er een aanmelding op gebeurt is maar dat lijkt mij ook niet wenselijk aangezien ik dan bv artikelnummers die ik niet meer wil aanmelden niet meer kan verwijderen..
Hoe doen jullie dit?
Hopelijk is het een beetje duidelijk uitgelegd en kunnen jullie mij raad geven!
Grtz,
M_N_M
ik heb een vraagje omtrent normalisatie.
Ik zal (vereenvoudigd) uitleggen hoe mijn database eruit ziet.
Ik heb 3 beheerstabellen:
- tabel1 met het artikelbestand:
ID autoint (primary key en dus aanpasbaar)
Artikelnummer (unique key)
Omschrijving
<nog wat randinfo bv type label, grondstof of eindproduct, ...>
- tabel2 met mogelijke informatie die je aan een artikel kan hangen:
ID autoint (primary key en dus niet aanpasbaar)
Informatie (unique key)
Mogelijke waarden: magazijn, THT, type pallet, ...
- tabel3 waarbij men kan opgeven welke informatie er moet opgevraagd worden bij een aanmelding van een artikel:
ID autoinit (primary key en dus niet aanpasbaar)
ID_artikel
ID_info
<nog wat extra velden die niet van belang zijn bv "verplicht in te geven">
De unique key is hier de combinatie van artikel en info.
Met deze tabel definieer je dus dat je bij artikel <x> zowel info "THT" als "magazijn" moet opvragen.
Hierboven zijn de beheerstabellen en kwa normalisatie zit dat volgens mij wel goed (nergens dubbele info gebruikt en telkens gewerkt met ID).
Ik stel mij echter de vraag of ik bij mijn HISTORIEK tabellen ook moet werken met id's of daar met de effectieve waarden?
Wat bedoel ik met "historiek": als men effectief zegt, ik ga nu 100 stuks van artikel <x> maken, dan wordt dat gelogd in historiek met een unieke code (jaar+maand+volgnummer) met daarin de gelinkte informatie uit het beheer)
Bv:
historiek tabel 1 (artikel) bevat bijvoorbeeld zo'n record:
2010020001 artikel x omschrijving x <extra info zoals aanmeldtijdstip, persoon, ..>
historiek tabel 2 (info artikel) bevat bijvoorbeeld volgende records:
2010020001 magazijn test (uniek nummer, info, waarde)
2010020001 THT 01/01/2011 (uniek nummer, info, waarde)
Mijn vraag: zou ik het doen zoals hierboven of zou ik in de historiek tabellen ook id's wegschrijven?
Kwa normalisatie lijkt mij dat het beste maar ik stel mij dan toch de vraag : wat als men het beheer gaat aanpassen, dan gaat de historiek ineens mee wijzigen?! (bv men zegt "THT" is vanaf vandaag "pallettype"). Aangezien ik in mijn historiek werk met een "ID", zal het dus lijken of al mijn oude aanmeldingen onder "pallettype" aangemeld zijn ipv "THT" ?!
Ik zou natuurlijk kunnen afblokken dat men het beheer niet meer kan wijzigen van zodra er een aanmelding op gebeurt is maar dat lijkt mij ook niet wenselijk aangezien ik dan bv artikelnummers die ik niet meer wil aanmelden niet meer kan verwijderen..
Hoe doen jullie dit?
Hopelijk is het een beetje duidelijk uitgelegd en kunnen jullie mij raad geven!
Grtz,
M_N_M

)