Verwijder product niet als deze voorkomt op factuur
Je kunt producten niet zomaar verwijderen of aanpassen, omdat als een product op een factuur voorkomt, die factuur opeens incompleet of onjuist zou zijn. Hoe werk je daar omheen?
Mijn idee
Mijn idee is als volgt: In plaats van een product te verwijderen of (de prijs) aan te passen, zet je het product op non-actief. Het product blijft dan in de database bewaard onder hetzelfde ID, zodat alle productverwijzingen op oude facturen naar dat product, met die productprijs, juist blijven. Daarnaast maak je een kopie van het product, die je met een nieuw ID weer invoert in je tabel. Alle facturen die vanaf dat moment worden gegenereerd en dat product bevatten, maken zo gebruik van de nieuwe data.
Is dit de juiste manier van werken?
Gewijzigd op 07/02/2011 00:25:13 door Stephan G
Je kunt het nog verder uitbreiden, denk ik, door die prijs 'uit' het product te halen. Daar dus weer een aparte tabel voor maken. Heb je ook al nagedacht over korting?
Zoek anders eens op normaliseren.
Normaliseren is wel aardig gelukt ;).
Toevoeging op 07/02/2011 01:04:54:
Edit:
Nu ik er over nadenk, heb ik denk ik niet eens een nieuwe koppeltabel nodig. Wat mijn oplossing op dit moment zou zijn is:
Een nieuw veld toevoegen aan de bestaande koppeltabel tussen producten en facturen. Je krijgt dan:
factuur_id, product_id, oud_product_id (bijv.)
Waarbij steeds alleen factuur_id en product_id OF oud_product_id zijn ingevuld; van die laatste twee dus niet beide!
straks komt de belastingdienst...moet je zeggen: "sorry mijn facturen kloppen niet meer want ik heb oude producten uit mijn systeem verwijderd" :-)
Gewijzigd op 11/02/2011 15:31:31 door John D