Beste Übung zum Speichern von Tags in einer Datenbank?

Ich habe eine Website entwickelt, die Tags (Schlüsselwörter) verwendet, um Fotos zu kategorisieren. Momentan habe ich in meiner MySQL-Datenbank eine Tabelle mit der folgenden Struktur:

image_id (int)
tag      (varchar(32))

Jedes Mal, wenn jemand ein Bild markiert (wenn das Etikett gültig ist und über genügend Stimmen verfügt), wird es der Datenbank hinzugefügt. Ich denke, dass dies nicht die optimale Methode ist, da ich jetzt über 5000 Bilder mit Tags habe und die Tags-Tabelle über 40000 Einträge enthält. Ich befürchte, dass dies die Leistung beeinträchtigt (sofern dies nicht bereits erfolgt).

Ich dachte bei dieser anderen Struktur darüber nach, dass das Abrufen der Tags, die einem bestimmten Bild zugeordnet sind, schneller gehen würde, aber dann sieht es schrecklich aus, wenn ich alle Tags abrufen möchte, oder zum Beispiel die beliebtesten:

image_id (int)
tags     (text) //comma delimited list of tags for the image

Gibt es eine korrekte Vorgehensweise oder sind beide Vorgehensweisen mehr oder weniger gleich? Gedanken

Antworten auf die Frage(6)

Ihre Antwort auf die Frage