1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Abfragen für eine History

Dieses Thema im Forum "Microsoft Access" wurde erstellt von Alph4, 10 April 2018.

  1. Alph4

    Alph4 Neuer Benutzer

    Hallo,

    ich habe ein kleines Problem. Für meine Projektarbeit darf ich eine Datenbank neu aufsetzten und diese funktionsfähig machen.
    Eine Funktion die korrigiert wird ist die History Funktion, welche dem Archivieren fertiger Projekte dient. Wichtig anzumerken ist jedoch das sowohl die aktiven als auch die fertigen Projekte in der selben Tabelle geführt werden.
    Das habe ich so gelöst:
    ein Tupel erhält eine Flag solbald ein bestimmter status eingestellt wird.
    Sobald die Flag da ist läuft eine Abfrage, welche den Tupel 1:1 kopiert und in die selbe Tabelle einfügt.
    Daraufhin wird eine aktualisierung des Ursprungstupels vollzogen welche die Spalten auf "Null" setzt. Meine Frage ist nun wie kann ich die Aktualisierung gestalten sodass nur das Ursprungstupel verändert wird und kein anderer Datensatz. hab schon ewig im Netz gesucht aber bisher nicht fündig geworden.

    Bietet sich für das Obere eine Schleife und/oder ein Trigger an?

    Mit freundlichen Grüßen
    Alph4
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Wozu das? Wenn ein Record fertig ist, setze ein Flag. Fertig.
     
    Walter gefällt das.
  3. Alph4

    Alph4 Neuer Benutzer

    Die komplette DB dient der Inventarverwaltung. Die Projekte sind an jeweils an eine Box gebunden, welche als Inventar zu betrachten ist. Man hat dadurch einen aktiven Datenpool von ca 200 Tupeln und der Rest ist abgeschlossen. Weil ich die Boxnummern indiziert habe und keine Duplikate zulassen möchte, bin ich auf diese Lösung gekommen. Zwar würde der Flag ausreichen aber ich als DB Laie habe das Vorgehen bevorzugt. Wenn ich dann abertausende Datensätze habe will ich keine Redundanzen bzw. Anomalien hervorrufen durch die Boxnummern, vor allem bei den aktiven Tupeln. Wenn ich nicht Indiziere befürchte ich das User unachtsam sind und nicht checken ob ein Datensatz belegt ist oder nicht und diesen dann einfach überschreiben. Ich will praktisch den aktiven Datenpool nicht "abschließen" sondern nur aktualisieren, was auch ich auch für die Formulare als wichtig erachte.

    Falls ich hierbei gegen DB-Grundsätze oder Ähnliches verstoße bin ich für Vorschläge sehr dankbar
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Irgendwie komisch, Du willst die Datensätze 1:1 kopieren und wieder in die Tabelle einfügen, gleichzeitig aber keine Duplikate zulassen. Klingt für mich wie der Versuch der Kreisquadratur.
     
  5. drdimitri

    drdimitri Datenbank-Guru

    Historisierte Daten speichert man am besten in einer extra Tabelle. Dort kann man dann auch zusätzlich Informationen ablegen z.B. wann die Änderung gemacht wurde etc.
    Damit sparst dir das Kennzeichen, sondern musst nur vor dem Update den aktuellen Satz per insert into in die Historisierungstabelle kopieren.

    Die Statements dazu generiert man sich idealerweise anhand der Tabellenstruktur.
     
Die Seite wird geladen...

Diese Seite empfehlen