John M.: Arrays in MySQL-Datenbank speichern und auslesen

Beitrag lesen

Hallo

Schlagwort ist dann eine Spalte vom Typ "Array" und CONTAIN sollte bedeuten, dass im Array "Sonnenuntergang" vorhanden ist. Wisst ihr so eine MySQL-Syntax?

Gibt es in MySQL derzeit nicht, in PostgreSQL dagegen schon.

Ich habe damit noch nie etwas zu tun gehabt und bis jetzt immer nur MySQL verwendet. Hier in SELFHTML (http://forum.de.selfhtml.org/archiv/2006/1/t122093/) stehen ja nun ein paar Vorteile und Nachteile. Meinst du es lohnt sich auf PostgreSQL zu setzen, weil ich da sozusagen mit Arrays arbeiten kann, obwohl die Performance schlechter ist? (Ist das überhaupt noch aktuell?) Oder wäre das mit Arrays falsch designed und dein Vorschlag unten wäre die beste Lösung?

Falls es keine gibt (was ich leider glaube, denn ich habe nichts dazu gefunden), wie kann ich das sonst umsetzen?

wie üblich. Normalisiere Deine Daten und speichere diese atomar ab.
Sprich: Verknüpfe Deine Schlagworttabelle mit der Tabelle der Bilder.

Ein Schlagwort kann zu mehreren Bildern passen. Einem Bild können mehrere Schlagworte zugeordnet sein, d.h. eine ganz normal m:n-Beziehung.

Das verstehe ich nicht ganz. Also schlägst du vor, dass ich zwei Tabellen mache, einen Mit den Bildern, die dann die Bilder enthält, aber was noch?
Und eine Tabelle wo alle Schlagwörter aufgeführt sind (die wird es sowieso geben)? Aber wie verknüpfe ich die bequem miteinander?

Ich möchte nicht soetwas:

Tabelle bilder
Bild | Schlagwort1 | Schlagwort2 | Schlagwort3 | ... | Bildgröße | ...

Sondern eben

Tabelle bilder
Bild | Schlagwörter[] | Bildgröße | ...

Natürlich würde bei Schlagwörter[] dann eben "0 => 5, 1 => 24, 2 => 37", wobei 5, 24 und 37 dann wiederum für die ID eines bestimmten Schlagworts stehen.

Nur wie bekomme ich das jetzt kompfortabel hin?