Изменения

Перейти к: навигация, поиск

Vitaphoto: Облака тегов

56 байтов убрано, 12:43, 20 июня 2016
Пример:
<html><object type="application/x-shockwave-flash" data="</html>{{localimage:tagcloud.swf}}<html>« " width="640" height="480"><param name="movie" value="</html>{{localimage:tagcloud.swf}}<html>» " />
<param name="bgcolor" value="#ffffff" />
<param name="AllowScriptAccess" value="always" />
Между прочим, следует задать и ещё один вопрос, кажущийся на первый взгляд тривиальным: а как вообще выбирать из базы фотографии, имеющие заданный набор тегов?
Можно выделить два способа — первый выполняется быстрее на относительно небольших (меньше 8 тегов) наборах, второй лучше масштабируетсяотносительно количества тегов в наборе.
=== По JOIN’у на тег ===
Добавляется по соединению на каждый тег набора, а так как все соединения — внутренние, они и фильтруют всё множество фотографий:
<code-sql>SELECT i1.* FROM image i1
JOIN tag_image ti1 ON ti1.ti_image=i1.img_id AND ti1.ti_tag=132
JOIN tag_image ti2 ON ti2.ti_image=i1.img_id AND ti2.ti_tag=113
JOIN tag_image ti3 ON ti3.ti_image=i1.img_id AND ti3.ti_tag=115
…и так далее…</code-sql>
=== Через группировку ===
<code-sql>SELECT i2.* FROM image i2, tag_image ti2WHERE ti2.ti_image=i2.img_id AND ti2.ti_tag IN (132, 113, 115) —  # набор тегов
GROUP BY i2.img_id
HAVING COUNT(i2.img_id)=3 — 3 # количество тегов в наборе</code-sql>
Плюсы и минусы — противоположные к плюсам и минусам предыдущего подхода.[[Категория:Архив]][[Категория:РазработкаSway]]

Навигация