Zum Inhalt springen

Ozymandias

Mitglieder
  • Gesamte Inhalte

    2
  • Benutzer seit

  • Letzter Besuch

  1. Eine Lösung mit Log Dateien möchte ich nicht unbedingt anstreben, zumal ich wahrscheinlich, wenn die Sache fertig ist, keinen Zugriff auf diese Dateien habe. Oder kann man die mit select, show oder sonst was auslesen? Das mit dem Trigger mache ich genau in dieser Form schon. Also die bisherige Lösung sieht so aus, dass ich wirklich für jede änderbare Spalte meiner Ursprungstabelle eine Tabelle anlege, in der ich die Änderungen festhalte mit UserID, Datum, ID des Datensatzes und dem alten Wert der Spalte. Der jeweilige Eintrag in diese Tabellen wird bei jedem Update automatisch von einem Trigger erstellt. Funktionieren tut es, ich halte es nur nicht für allzu elegant...
  2. Hallo Community, ich hab da mal ein Problem. Ich habe eine mySql Datenbank, in der es eine große Tabelle mit zahlreichen Spalten gibt (ca. 40). Die Werte in den Spalten sind über ein PHP Skript änderbar und es soll bei jeder Änderung festgehalten werden, wer wann welche Werte geändert hat und wie die Werte vorher waren, um ggf. die Datensätze wieder auf einen vorherigen Stand zu bringen. Hab schon lange gegoogelt, aber ich bin noch zu keinem vernünftigen Ergebnis gekommen. Ein zusätzliches Problem ist, dass zu dieser Tabelle im Laufe der Zeit weitere Spalten kommen könnten... :upps Mein erster Ansatz war, einfach eine zweite Tabelle mit den gleichen Spalten und zusätzlich je einer Spalte für eine UserID und einen Timestamp zu erststellen und dort alles zu speichern. Das Problem dabei ist, dass meist nur ein Wert geändert wird, und trotzdem ein kompletter Datensatz neu angelegt wird. Wie sieht es da beim Speicherverbrauch aus, wenn nur die Werte gesichert werden, die sich geändert haben und der Rest NULL bleibt? Der zweite Ansatz war, eine Tabelle für die Änderungen anzulegen, die so aussieht: ID, Datensatz_ID, Spalte, zeitpunkt_der_Änderung, user_id, Wert Also festhalten, bei welchem Datensatz welche Spalte wann von welchem User geändert wurde und welchen Wert sie hatte. Natürlich gibt es da das Problem, daß die Ursprungstabelle natürlich unterschiedliche Datentypen in den Spalten hat. Also müsste ich alle Änderungen als TEXT speichern und beim Rückgängig machen dann wieder in den jeweiligen Typ umwandeln. Ginge schon, ist aber ziemlich unschön. Der dritte Ansatz ist, für jede Spalte eine eigene Tabelle für die Änderungen anzulegen. Bei 40 Spalten gibt das 40 Tabellen und beim Rollback habe ich richtig Spaß, alle Änderungen abzufragen... Ich halte dennoch den Ansatz 3 für am geeignetsten für dieses Problem. Ich muss aber auch zugeben, dass ich ein ziemlicher Anfänger bin, was das Designen von Datenbanken betrifft... Was meint ihr, welchen Ansatz sollte ich nehmen, oder gibt es noch eine andere Möglichkeit, auf die ich noch nicht gekommen bin? Alle Tipps sind herzlich willkommen.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...