Registriert seit: 2. Jan 2006
Ort: Münster
167 Beiträge
Delphi 2006 Professional
|
Welche Daten in Datenbank wirklich löschen
19. Feb 2006, 18:40
Datenbank: Egal, da prinzipielle Frage • Zugriff über: Kein Zugriff
Hallo,
mich würde mal interessieren, wie ihr das macht, wenn Daten in einer Datenbank gelöscht werden sollen, wobei andere Daten von den zu löschenden Daten abhängen. Simples Beispiel: man hat eine Artikeldatenbank, wobei jedem Artikel eine Artikelgruppe zugeordnet ist. Jetzt soll eine Artikelgruppe gelöscht werden, zu der Artikel vorhanden sind. Da könnte man ja vorher alle Artikel so abändern, dass zu der Artikelgruppe keine Artikel mehr existieren und gut.
Oder man hat Aufträge, in denen zu einem Artikel auch die Artikelgruppe gespeichert wird und möchte nun die Artikelgruppe löschen. Für zukünftige Aufträge kein Problem, aber was ist mit alten Aufträgen?! Sollte man in solchen Fällen die Daten in der Datenbank einfach als gelöscht markieren und nicht mehr anzeigen, wodurch man nicht inkonsistent wird, oder hart löschen und nicht komplett relational arbeiten?! Oder sollte man immer die Möglichkeit geben, bestehende Datensätze anzupassen? (z.B. eine Abfrage, in welche Artikelgruppe die Artikel stattdessen einsortiert werden sollen)
Denn wenn ich in jeder Tabelle mit einem "Gelöscht"-Flag arbeite, werden evtl. einige Abfragen (leicht) komplizierter und man vertut sich evtl. schneller.
Wie geht ihr also in solchen Fällen vor? Ich habe es meistens bislang so gemacht, dass ich versuche zu löschen und wenn es nicht geht, da noch etwas abhängt, dann markiere ich es als gelöscht. Nur ganz zufrieden bin ich damit auch nicht.
Gruß,
Dominik
|