SQL: Array speichern & 1. Normalform?!

Servus!

Ich würde gerne einmal die Meinung von Experten hier im Forum hören: Ist es empfehlenswert ein Array unbestimmter Größe als solches (bzw. als JSON) in einer Datenbank zu speichern? Natürlich habe ich schon das Internet abgesucht aber da steh ich nun, ich armer Thor, und bin so klug als wie zuvor.

Ich habe in Datenbanken von Joomla!, typo3 und WordPress Einträge gefunden wo Arrays in einer Zelle gespeichert sind, so wie auch hier beschrieben: Arrays in Datenbank speichern - Ich denke wenn die 3 größten CMS das so machen wird es wohl Vorteile haben.

Andererseits widerspricht das doch der 1. Normalform?! Ich kann mir aber auch nicht vorstellen, dass es schneller ist z.B. 20 getrennte, atomare Einträge aus der Datenbank zu lesen als ein Array. Und wenn ich im vorhinein die Länge des Arrays gar nicht kenne, dann brauch ich erst recht wieder eine "Hilfstabelle" die aus den FK der n:m-Beziehung besteht.

Deutlich langsamer wird wohl die Suche sein wenn ich nur einen Eintrag aus dem Array brauche und eine Sortierung nach einem Wert ist auf Datenbankebene nicht möglich. Sobald ich das Array aber ausgelesen habe kann ich eh wieder jeden Wert einzeln verwenden ...

Bitte um Hilfe wie ihr das praktisch macht da ich für ein Projekt im Rahmen meines Studiums eine Applikation mit Datenbank programmieren muss.
 
also erstmal sei gesagt ... es kann sehr ungemütlich werden etwas mit unbestimmter Größe in einer Tabelle (konsequtiv Feld) zu speichern.

Wenn du den Array ansich brauchst ... wandle dir das Ding in eine endliche Stringlist um und speichere dieses.

brauchste aber einzelne Elemente dieses Arrays ... zerlege es um die 1.NF zu erhalten.

Die Datenbank ist dafür da, die Dinge zu verwalten/zu suchen, lass sie den Job machen. (ist im Schnitt meist sowieso schneller und du kannst dich auf das wesentliche konzentrieren)
 
Wenn du dir wirklich wirklich sicher bist, dass du niemals anhand der Daten im BLOB filtern muss, kannst du es tun. Das ist aber schlechter Stil und wird nicht ohne Grund von z.B. Django einem schwer gemacht ;). Wenn du nicht sicher sein kannst, dass du nicht bereits im DB-Query auf den blob zugreifst, lass es.
 
Zurück
Oben