Tags:
php
Jeg har et site med drinksopskrifter, hvor drinksne er lagret på følgende måde:
Hovedtabel til drinks "drinks":
Indeholder informationer generelle omkring den enkelte drink
"ingredienser":
Indeholder informationer omkring den enkelte ingrediens (såsom navn, historie osv)
"drinkingredienser":
indeholder mængde og ingrediens id, samt drink id, altså hvilke ingredienser der er i hvilke drinks.
Det jeg gerne vil er, at jeg vil have mulighed for at se, hvilke ændringer der bliver foretaget i drinken, samt at "spole tilbage", hvis dette skulle være nødvendigt (ligesom Wikipedia).
Hvordan kan man dette?
Problemet for mig er, at det hele ikke ligger i et felt, men er spredt ud over flere felter.
1 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Du laver en history tabel for hver af dine tabeller.
I hver history tabel har du samme felter som i tabellen der skal laves historie for, plus felter til dato og bruger.
Hver gang du ændrer data i en tabel, kopierer du de nye data over i historie tabellen sammen med information om brugeren og datoen.
Så har du historik, hvis du er lidt ferm kan du restore en tabel til et givent tidspunkt ... blot skal du enten fjerne alle nyere records i history tabellen, eller lave en ny bagefter. Det er lidt smag og behag, men jeg kan bedst lide at man bevarer historikken.