Deze database bezit eigenschappen van diensten, met aan elke dienst 1 of meer activiteiten, die op hun beurt weer uit 1 of meerdere activiteitenregels kan bestaan (waaronder financiele gegevens waarmee gerekent moet worden).
Zoals de database er nu uit ziet zou je verwachten dat deze alleen maar actuele gegevens bevat.
Echter, wanneer er een dienst, activiteit of een activiteitregel (meerdere keren) gewijzigt wordt, moet deze wijziging(en) in de database opgenomen worden, MAAR ook de oude situatie (ivm tijdsvergelijkingen).
Hoe kan ik dit het beste in deze database implementeren?
- Dmv een statuswijziging van de dienst/actieviteit/activiteitregel in de database zoals deze hierboven is. Dus de ouwe record (ouwe situatie) krijgt een status ‘archief’. Een nieuw record met de nieuwe situatie wordt opgenmomen en krijgt een status ‘actueel’.
- Of kunnen we het beste 1 tabel in de DB erbij opnemen, die alle velden van bovenstaande tabellen in zich heeft. En die, zodra er een wijziging plaatsvind, gevuld wordt met de ‘oude’ situatie? (bv. Een activiteit wordt gewijzigt. De activiteit en daarbij behorende activiteitregel(s) en ook de bijbehorende dienst wordt in de extra tabel opgenomen)
- Of is een oplossing schaduwtabellen? Dus DIENST_LOG, ACTIVITEIT_LOG en ACTIVITEITREGEL_LOG. (Zodra een wijziging wordt doorgevoerd, wordt de nieuwe situatie in de normale tabellen opgenomen. De oude situatie komt in de logtabellen te staan)
Welke manier zou het beste zijn? Of is er nog een andere betere (makkelijkere) manier?