Datenbank > Felder/Spalten versionieren

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Datenbank > Felder/Spalten versionieren

      Huhu zusammen,

      schon lange möchte ich eine Funktion in meine Software implementieren um sämtliche Eingaben zu "versionieren".

      Zum Beispiel wurde im Feld "Name" Maier geschrieben und das wird korrigiert auf Meier.
      Diese Änderung soll immer nachvollzogen werden können.

      Meine Anforderung ist, dass das für alle Felder zur Verfügung steht.

      Die Software ist nur für mich selbst und derweil ist die "Datenbank" dahinter einfach ein paar Plists, da im Jahr vielleicht um 30 Einträge wächst.

      Gerne würde ich die Software weiter ausbauen.
      Neben der Implementierung einer richtigen Datenbank stellt sich eben die Frage nach der "Versionierung".
      In der Software möchte ich später Adressändeurngen geänderte Rechnungen etc. alles einwandfrei nachvollziehen können.
      Das ist meine Anforderung.

      Wie würdet ihr das bauen?

      Einfach wäre immer den gesamten Datensatz wegzuschieben.
      Damit würde aber große Redundanz erzeugt werden.

      Im Prinzip müsste jedes Feld ein Array sein und der aktuellste Wert immer oben.
      Damit könnte man zu jeder Änderung pro Feld auch immer das Änderungsdatum nachvollziehen.

      Ideen?

      Viele Grüße
    • Du solltest immer komplette Zeilen / Records versionieren. Der Aufwand für einzelne Werte lohnt sich m. E. Gerade bei wenig Daten nicht. In einem relationalen DBMS kannst du das recht einfach über eine Versionsspalte oder eine zweite Tabelle und Triggern realisieren.
      „Meine Komplikation hatte eine Komplikation.“
    • Ich würde es auch über eine Tabellenkopie machen. Das ist technisch sehr einfach lösbar indem du vorm Update der "live" Tabelle einfach den aktuellen Datensatz mit Datum in die "log" Tabelle schreibst und fertig und du hast keine wirkliche Redundanz in dem Live Daten. Sprich die "Normalerweise" wirklich benutzte Tabelle bleibt klein und schnell.

      Gruß

      Claus
      2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

      Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
    • Bei 30 Einträgen pro Jahr lohnt sich eine Umstellung auf eine Datenbank nicht, denke ich.
      Als Übung ist das natürlich wieder etwas anderes.

      Meine Erfahrung mit einer etwas größeren Anwendung ist, dass ich die alten Daten nicht in
      derselben Tabellen belassen würde, wenn die Anwendung nicht auch fast immer die alten
      Daten benötigt. Sonst hat man meist unnötig komplexe Abfragen und bei großen Datenmengen
      merkt man schneller, dass es (zu) langsam ist.

      Aus Platzgründen kann es sich lohnen, nicht die ganzen Zeilen zu versionieren. Bei großen
      Datenmengen lohnt sich der Aufwand dann vielleicht auch irgendwann.