Я разработал сайт, который использует теги (ключевые слова) для классификации фотографий.
Сейчас в моей базе данных MySQL есть таблица со следующей структурой:
image_id (int)
tag (varchar(32))
Каждый раз, когда кто-то отмечает изображение (если оно является действительным и имеет достаточно голосов), оно добавляется в базу данных. Я думаю, что это не оптимальный способ сделать что-то, так как теперь, когда у меня есть более 5000 изображений с тегами, таблица тегов содержит более 40000 записей. Я боюсь, что это начнет влиять на производительность (если это еще не влияет на нее).
Я думал, что эта другая структура думает, что было бы быстрее выбрать теги, связанные с конкретным изображением, но тогда это выглядит ужасно, когда я хочу получить все теги, или, например, самый популярный:
image_id (int)
tags (text) //comma delimited list of tags for the image
Есть ли правильный способ сделать это или оба пути более или менее одинаковы?
Мысли?