Welche Art von Feldern werden im Allgemeinen verwendet, um Soft Delete zu begleiten? Irgendwelche von diesen, andere?soft delete gemeinsame Attribute in Bezug auf Kaskadenwiederherstellung
bool IsDeleted // nice because the default value is 0 (no) just in case
date DateDeleted // is this a common one?
date DateCreated // more of a temporal db aspect
date DateModified // same with respect to created
Der Grund, warum ich frage ist, dass, wenn Soft-Löschungen mit Kaskadierung muss noch um Integrität zu erhalten umgesetzt werden. Der wahre Trick ist jedoch nicht Kaskadenlöschung, was ziemlich einfach ist.
The trick is cascade restoring
. Beim kaskadierten Löschen mit einem Szenario für das Löschen werden alle Datensätze im relationalen Diagramm als gelöscht markiert, inaktiv, unabhängig vom Flag. Vielleicht besteht der Unterschied darin, das gelöschte Datum in einen Wert von null zu ändern. Bei der Kaskadenwiederherstellung müssen Datensatzverweise ausgewertet werden, um festzustellen, ob der Grund für das Löschen ein Ergebnis eines kaskadierenden Löschvorgangs war, der sich auf den wiederherzustellenden, reaktivierten und wiederhergestellten Datensatz bezieht.
Wie werden Kaskadenwiederherstellungsvorgänge in Bezug auf gespeicherte Daten behandelt?
Das Hauptproblem ist die Wiederherstellung. Das Löschen ist ziemlich einfach. Bei einer umgekehrten Kaskadendarstellung ist es jedoch schwer zu sagen, ob es möglich ist, dass während das Kaskadendiagramm wiederhergestellt wird, die Abhängigkeiten dieses Graphen bereits entfernt wurden, während das wiederherzustellende Diagramm als inaktiv markiert wurde. –
Siehe diese Frage für eine ausführlichere Frage zur Wiederherstellung: http://StackOverflow.com/Q/10111699/1026459 –
@TravisJ - Ich wies in meiner Antwort darauf hin, dass meine empfohlene Transaktionsprotokolltabelle Lösung eine "Geschäftstransaktions-ID" enthält ist entscheidend für die Klärung dessen, was kaskadiert wurde. Wenn Sie alle Änderungen mit derselben Geschäftsvorgangs-ID finden, finden Sie alle Schritte, die zum Löschzeitpunkt abgeschlossen wurden. Sie führen diese Schritte aus, um eine Wiederherstellung durchzuführen. Das einzige mögliche Problem, auf das Sie stoßen könnten, ist, wenn die kaskadierten gelöschten Elemente irgendwie auch zusätzliche Abhängigkeiten haben, die möglicherweise zu einem anderen Zeitpunkt unter einer anderen Geschäftsvorgangs-ID weich gelöscht wurden. Dies sollte selten sein. –