У меня есть базы данных MySQL с 3 таблицами:Как найти дополнительные теги?
- Основной таблица записей, называемых «следами» (как в музыке)
- таблицу тегов называемых «метка»
- Объединение таблицы два называемых «метками»
Таблица тэгов - это в основном список жанров, который заранее определен. После этого трек может иметь 1 или более тегов (через таблицу соединений).
Идея состоит в том, что пользователь проверяет жанры (теги), для которых он или она хочет найти дорожки. Но мне также хотелось бы, чтобы интерфейс отражал те теги, которые больше не «полезны», т. Е. Теги, которые дополняют выбранные в настоящий момент.
Редактировать: Я пропустил то, что мне нужно найти теги, которые дополняют выбранный набор тегов. См. Мой комментарий ниже.
Пример: пользователь выбирает теги «рок» и «поп» и отображается список дорожек, соответствующих «рок» + «поп». Но предположим, что в базе данных нет треков, которые также матч «джаз». В этом случае я хотел бы отключить тег «jazz» в интерфейсе, потому что «rock» + «pop» + «jazz» дал бы нулевые результаты.
Есть ли умный способ сделать это с MySQL?
Я добавил еще один вариант, это действительно просто передел первого, но, возможно, он не убьет вашего клиента. – scottm
Друг указал на что-то, что усложняет дело: запрос должен найти возможные «последовательные» теги, так сказать. То есть если вы ищете метки 1 и/или 3, вы найдете треки, которые имеют один или оба. Все идет нормально. Но ниже будут указаны, есть ли треки с тегами 1 & X, _or_ tag 3 & X, но на самом деле нужно посмотреть, есть ли треки с тегами 1 _and_ 3 _and_ X. И это делает все очень сложным, как я могу сказать – Flambino