Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: Datenbank auf Streambasis

  Alt 4. Mär 2012, 10:20
Jeder Datensatz bekommt ein Löschkennzeichen ganz am Anfang vor den eigentlichen Nutzdaten.
' ' bedeutet Daten sind gültig; '*' bedeutet Datensatz wurde gelöscht.
Die gelöschten Datensätze bleiben an Ort und Stelle in der Datei erhalten.
Man benötigt dann noch eine Restrukturierungsfunktion...
Das Löschkennzeichen kann man auch erweitern, indem man die gelöschten Records wie in einer linked List miteinander verknüpft: Steht eine 0 drin, ist der Record in Verwendung, jede andere Zahl bezeichnet die Recordnummer des nächsten gelöschten Records.

Wenn man nun den Index des ersten gelöschten Records kennt (den man z.B. im Dateiheader abgelegt hat), dann kann man die Operation "Gib neuen Recordindex" sehr einfach und schnell implementieren. Das Löschen eines Records würde zudem bedeuten, das der Record einfach vorne in die verkettete Liste eingefügt wird.

Auf diese Weise degeneriert so eine Datei im laufenden Betrieb nicht.

Dessenungeachtet würde ich die Aufgabe "Speichern eines Array of Record" eher mit ORM realisieren.
  Mit Zitat antworten Zitat