Лучшая практика для хранения тегов в базе данных?

Я разработал сайт, который использует теги (ключевые слова) для классификации фотографий. Сейчас в моей базе данных MySQL есть таблица со следующей структурой:

image_id (int)
tag      (varchar(32))

Каждый раз, когда кто-то маркирует изображение (если тег является действительным и имеет достаточно голосов), оно добавляется в базу данных. Я думаю, что это не оптимальный способ сделать что-то, так как теперь, когда у меня есть более 5000 изображений с тегами, таблица тегов содержит более 40000 записей. Я боюсь, что это начнет влиять на производительность (если это уже не влияет на это).

Я рассмотрел эту другую структуру, думая, что было бы быстрее выбрать теги, связанные с конкретным изображением, но тогда это выглядит ужасно, когда я хочу получить все теги или, например, самый популярный:

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

Есть ли правильный способ сделать это или оба пути более или менее одинаковы? Мысли?

Ответы на вопрос(3)

Ваш ответ на вопрос