Liste in SQL Datenbank speichern?

1 Antwort

Wenn man es wollte, könnte man es, indem man die Liste zu einer Zeichenkette serialisiert (bspw. zu einem Datenformat wie JSON oder CSV) und dann in eine VARCHAR-Spalte schreibt.

Das ist allerdings ein Vorgehen welches ich nicht tatsächlich empfehlen würde. Zum einen hättest du so stets den De-/Serialisierungsaufwand und zum anderen minderst du die Flexibilität und Schnelligkeit der Datenbank beim Suchen.

Die bessere Vorgehensweise wäre es, die einzelnen Listenwerte in einer separaten Datenbanktabelle zu speichern. Die bestehende Tabelle hingegen erhält ein Feld, welches auf die neue Tabelle (als Fremdschlüssel) verweist.

Wenn du nun einen Eintrag XY hast, mit einer Liste, die die Werte A und B enthält, müssen A und B zum einen als jeweilige Datensätze in der neuen Tabelle liegen. Zum anderen legst du in deiner bestehenden Tabelle zwei neue Datensätze an. Der eine verweist in seiner Fremdschlüsselspalte auf den Eintrag A der neuen Tabelle, der andere auf den Eintrag B.

Die Werte der Liste kannst du mittels SELECT und einem JOIN wieder ermitteln.