Как реализовать навигацию по облаку тегов в MySQL - PullRequest
0 голосов
/ 13 июня 2011

Я хочу написать веб-приложение для заказа моих фотографий.Вместо того, чтобы помещать их в категории, я хочу добавить теги к определенным изображениям.Я думал о том, чтобы иметь 2 таблицы, одну для изображений:

uniqueID   imagename
1          photo1.jpg
2          photo2.jpg
3          photo3.jpeg
4          pic4.jpeg

и одну таблицу для тегов:

ID         tag
1          California
1          Peter
1          beach
2          California
2          L.A.
2          Peter
3          California
3          Susan
4          Kansas
4          Claudia

После запуска приложения теги отображаются в размере, соответствующемколичество вхождений в базе данных.Когда я нажимаю на тег (например, «Калифорния»), все остальные теги изображений, которые также имеют выбранный тег, должны отображаться на следующей странице (здесь: «Питер», «Пляж», «Лос-Анджелес», «Сьюзен»)но НЕ "Канзас" и "Клавдия").Когда я впоследствии нажимаю, например, на тег «peter», должны быть показаны все оставшиеся теги фото 1 и 2 («пляж», «LA»).

Можно ли реализовать эти две вещи с помощьюодин запрос?

  1. Выберите имена изображений из таблицы изображений, в которых есть все выбранные теги в таблице тегов
  2. Выберите все оставшиеся теги и их COUNT () для этих изображений(Идентификаторы), которые также имеют выбранные теги в таблице тегов.

Спасибо за вашу помощь

Свен

1 Ответ

0 голосов
/ 13 июня 2011

Для 1) Вы должны использовать запрос SELECT с JOINS. Например:

SELECT     *
FROM       images i
INNER JOIN categories c
        ON i.id = c.id

Для 2) Я не совсем уверен, что понимаю, что вы подразумеваете под оставшимися тегами.

...