Интересная задача. Отображение по тегам

Alexeina66

Мой дом здесь!
Регистрация
26 Авг 2013
Сообщения
426
Реакции
445
Всем привет!
Разрабатываем сайт на php.
Очень нужно решение по отображение материалов по определенным тегам пользователям сайта.

Суть в том что пользователи создают пост и выбирают теги. Например выбрали Юмор, Политика. Ну бывает такое))
В настройках профиля каждого юзера планируется сделать настройку, а именно по каким тегам отображать посты сайта. Юзер допустим включил тег Юмор на отображение. А тег политика выключил.
И получается тогда коллизия. Отображать пост или нет? И как красиво решить такую задачу?
При создании поста можно выбирать не более 3 тегов.
 
Таблица с постами:
- ид
- название
- содержимое
Таблица с тегами:
- ид
- название
Таблица с соответствиями:
- ид_тега
- ид_поста

Запросом выбираешь все записи, для которых в таблице с соответствиями есть для найденных постов айди тега, который выбран для отображения, и где нет тегов, которые выбраны для игнорирования.
 
1. Теги есть у всех постов. 2. Если мы включаем отображение постов по тегу Юмор а тегу Политика выключаем, то пост с тегами Юмор и Политика одновременно, будет показываться? 3. Это еще легкая задача. Это еще не 3 тега у поста))
 
1. Теги есть у всех постов. 2. Если мы включаем отображение постов по тегу Юмор а тегу Политика выключаем, то пост с тегами Юмор и Политика одновременно, будет показываться?
Теги:
ID 1 : "политика"
ID 2 : "юмор"
Посты:
ID 1 : "путин краб" "ололо путин краб"
ID 2 : "курс евро" "беда, поднялся курс евро"
Соответствия (tag_id, post_id:(
ID 1 : ID 1
ID 1 : ID 2
ID 2 : ID 1

Нужно выбирать все посты, где в соответствии есть тег с ID 2 и нет тега с ID 2.
 
Как вариант, можно после всех постов выводить небольшое сообщение типа:
> Некоторые посты содержат тег юмор, но не были показаны, т.к. содержат игнорируемые теги.
И внизу кнопочка, типа "Показать мне эти записи".
 
1. Теги есть у всех постов. 2. Если мы включаем отображение постов по тегу Юмор а тегу Политика выключаем, то пост с тегами Юмор и Политика одновременно, будет показываться? 3. Это еще легкая задача.
По логике вещей - ДА, должен показываться.

Вариант, который предложил Sorcus мне кажется не логичным.

Всегда поиск по тегам происходит с условием наличия одно из указанных тегов
 
просто делается точное вхождения слова + а лучше просто фильтровать по конкретным связкам как написал укроп! и разницы нету сколько там связок 10-20, смысл в том что связка идет айди 1 у тега по нему и вести связки! тоесть у вас хоть 10 тегов одинаковых если вы фильтруете по тегу с айди 2 то оно и будет по нему фильтровать!
 
Назад
Сверху