Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - Listen in Datenbanken über Serialisierung vereinfachen


Palladin007 - Mi 25.07.12 11:23
Titel: Listen in Datenbanken über Serialisierung vereinfachen
Moin

Ich denke mal, jeder, der schon einmal mit einer Datenbank experimentiert hat, stand vor dem Problem, eine Auflistung für eine Zeile einzubauen.
Wenn diese Auflistung komplexer ist (z.B. eine Auflistung von Personen, die über eine extra Tabelle definiert werden), bietet sich weiter hin eine typische 1 : n -Beziehung an.

Aber bei einfachen Auflistungen, die z.B. nur Text beinhalten, kann man da nicht die Auflistung serialisieren und dann das Resultat speichern lassen?
Bei größeren Datensetzen ist das sicherlich nicht praktisch, aber wenn ich als Beispiel eine Auflistung von Bildern habe, jedes Bild über den Pfad angegeben wird und die Auflistung auf 10 Bilder beschränkt ist, dann ist das ständige serialisieren kein so großer Aufwand und lässt sich realisieren.
Das funktioniert dann allerdings nur, wenn man die Datenbank über typisierte Klassen verwendet, dann setzt man dort eine Eigenschaft, die genau diese Auflistung serialisiert und deserialisiert.


Meine Frage nun:

Lohnt sich das, wenn ich die binäre Serialisierung nutzen will, oder fällt das ständige Serialisieren und Deserialisieren doch zu sehr ins Gewicht?


Gruß


Ralf Jansen - Mi 25.07.12 12:10

Ausprobieren ;)

a.) Du kannst DB spezifische Features jenseits des SQL Standards verwenden. Z.b. PostgreSQL oder Oracle kennen Array Typen.
b.) Du kannst das ganze Zeug auch einfach in einem Blob ablegen. Der Aufwand des Serialisieren/Deserialisierens sollte da kein Problem sein.
Ich benutze ein solches Verfahren schon mal zur Performanceoptimierung. Macht aber nur Sinn bei sich nicht oder kaum ändernden Daten die man immer komplett braucht und auf relationale Funktionalität verzichten kann. Das sollte immer schneller sein als sich die ganzen Daten satzweise(oder Blockweise) aus der DB zu holen.