2015-05-06 3 views
1

Я использую поиск по тегам с использованием PHP и MySQL, где каждая фотография имеет несколько тегов. Я буду использовать эти теги для поиска фотографий. Например, когда я ищу запрос «building», я хочу, чтобы все фотографии имели тег «building».Добавить теги в фотографии mysql

Вот мои таблицы:

photos(photo_id, name, url) 
tags(tag_id, tag, photo_id) 

это правда? или лучшая идея ценится

+0

Я хотел бы предложить 3 таблицы. Теги, фотографии и таблица ссылок, как вы хотите, чтобы отношения «многие ко многим» я предполагал. –

+0

Вам не хватает шансов, если один и тот же тег добавлен для нескольких фотографий. (вам нужно нормализовать с тремя таблицами) – Sachink

+0

@ Да, да, я понял проблему нормализации. Можете ли вы дать мне 3 стола для моего примера? – danishjo

ответ

1

Нормализация до третьей нормальной формы:

photos(photo_id, name, url) 
tags(tag_id, tag_name, tag_desc) 

REFE:

photo_tag_refr(photo_id,tag_id, other_attributes) 
0

фото (photo_id, имя, URL)

теги (tag_id, tag)

tags_photos (tag_id, photo_id)

Поиск фотографий по тегу: например

Select * From `photos` p 
LEFT JOIN `tags_photos` tp ON p.photo_id = tp.photo_id 
LEFT JOIN `tags` t ON tp.tag_id = t.tag_id WHERE t.tag = 'building'; 

http://sqlfiddle.com/#!9/47a7e/1

Смежные вопросы