РЕДАКТИРОВАТЬ: с вашим разъяснением кажется более убедительным использовать JCR-подобное решение с поисковой системой. Это значительно упростит ваши программы в долгосрочной перспективе.

ы вы разработали базу данных для поддержки следующих функций тегирования:

элементы могут иметь большое количество теговпоиск всех элементов, помеченных данным набором тегов, должен быть быстрым (элементы должны иметь ВСЕ теги, так что это поиск AND, а не OR)создание / запись элементов может быть медленнее, чтобы обеспечить быстрый поиск / чтение

В идеале поиск всех элементов, помеченных (как минимум) набором из n заданных тегов, должен выполняться с использованием одного оператора SQL. Поскольку количество тегов для поиска, а также количество тегов для любого элемента неизвестны и могут быть большими, использование JOIN нецелесообразно.

Есть идеи?

Спасибо за все ответы до сих пор.

Однако, если я не ошибаюсь, приведенные ответы показывают, как выполнять ИЛИ-поиск по тегам. (Выберите все элементы, которые имеют один или несколько тегов n). Я ищу эффективный И-поиск. (Выберите все элементы, которые имеют ВСЕ n тегов - и, возможно, больше.)

Ответы на вопрос(5)

Ваш ответ на вопрос