Siechfred: Arrays in MySQL-Datenbank speichern und auslesen

Beitrag lesen

Das Bild heißt "schönes_Bild", soll die Schlagworte "Sonnenuntergang", "Meer" und "Strand" haben und insgesamt gibt es die Schlagworte "Sonnenuntergang", "Meer", "Strand", "Düne", "Wolken".
Dann sehen der erste Datensatz ja so aus:

bild

1 (id_bild)
"schönes_Bild" (bildname)

Genau.

Aber dann? Was bedeutet "bild_aspekt"? Ich verstehe, dass id_bild dann identisch ist, aber was ist nun id_aspekt? Und was ist der dritte Datensatz?

Du hast eine zweite Tabelle, welche die Beziehung zwischen dem Einzelbild und der dritten Tabelle (die mit den Kategorien) herstellt. Ohne diese 2. Tabelle ist das ganze Konzept Unsinn, da Du zwei völlig unabhängig nebeneinander stehende Tabellen hättest. Angenommen, Deine Kategorietabelle hätte folgende Einträge:

Kat-ID | Kat-Bezeichnung  
  42   | Sinn des Lebens  
  666  | Number of the Beast

Jetzt möchtest Du aus der Tabelle "Bilder" diese zwei Kategorien dem Bild mit der Nummer 3 zuordnen. Dann sähe Deine 2. Tabelle so aus:

Bild-ID | Kat-ID  
  3     | 42  
  3     | 666

Die hat für sich betrachtet erstmal keine Aussage, denn die bekommt sie erst durch Verknüpfung von Bild-ID mit Bild-ID aus der Tabelle "Bilder" und von Kat-ID mit Kat-ID aus der Tabelle "Kategorien".

Und könntest du mir ein kleines INSERT Beispiel machen?

Das bekommst Du selber hin:
http://dev.mysql.com/doc/refman/5.1/de/insert.html

Um die Anzahl der Schalgworte pro Bild ggf. zu begrenzen, werden zusätzliche Mechanismen benötigt.
Darauf gehe ich gleich ein, wenn ich das verstanden habe. Man kann doch einfach abfragen, wieviele Schlagworte einem Bild zugeordnet sind oder nicht?

Ja, kann man.

Siechfred

--
Hinter den Kulissen passiert viel mehr, als man denkt, aber meistens nicht das, was man denkt.