Используя решение Toxi , как мне выбрать теги для определенной "Закладки" (чтобы сохранить тему Delicious):
Я могу либо:
1) Присоединиться к одному запросу:
select bookmark.title, bookmark.url,
(
SELECT group_concat( tags.name ) as tagNames
FROM taggings INNER JOIN tags
ON taggings.tagId_fk=tags.tagId
WHERE taggings.bookmarkId_fk = bookmarks.bookmarkId_fk
)
from bookmarks
where bookmarks.id=1 ;
^^ That gives
title url tagNames
A bkmrk http://url.com tag1,tag2,tag3
2) Используйте два запроса : один для получения идентификаторов закладок для отображения, а другой для получения тегов для этих закладок. Затем результаты можно объединить в PHP.
Так что на самом деле этот вопрос таков: в общем эффективность / нагрузка на базу данных лучше ли делать больше объединений в одном запросе или нескольких запросах?
Как вы принимаете такое решение? Или вы просто не думаете об этом, пока загрузка не вызовет проблемы?