Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Список объектов по свойствам из 2х таблиц (Александр) 09/07/2011 - 20:24:53
      Re: Не очень понятна проблема (Akina) 09/07/2011 - 23:45:08
      Re: Не очень понятна проблема (Александр) 10/07/2011 - 00:11:12
      Re: Не очень понятна проблема (Akina) 10/07/2011 - 13:32:06
      Re: Не очень понятна проблема (Александр) 15/07/2011 - 15:45:36



From: Александр - 09/07/2011 - 20:24:53
Subject:Список объектов по свойствам из 2х таблиц
-----------------
Доброго времени суток,
не уверен, можно ли решить данную задачу одним запросом, более того, сейчас вообще не вижу для нее рациональных решений.
Пожалуйста, укажите путь :)

Существует несколько тв-каналов, на которых показываются фильмы. У Фильмов есть теги. Для каждого канала ведется история проигранных фильмов, на основе которой можно получить статистику в виде тег - вес тега. (в данном случае вес будет отображать кол-во раз, которое тег встречается во всех фильмах на этом канале), например на канале были показаны следующие фильмы:

фильм 1: драма, музыка, приключения
фильм 2: комедия, боевик, приключения

соответственно для канала мы получим следующий набор тегов и их весов:
приключения (2)
драма (1)
музыка (1)
комедия (2)
боевик (2)

Кроме этого, мы запоминаем историю просмотров пользователя в виде user_id - channel_id.
Имея для каждого канала набор тегов и их весов, несложно посчитать наиболее предпочитаемые теги пользователем и их веса.
Сделать это можно по формуле: вес тега = кол-во раз, которое тег встречается в истории просмотров пользователя/кол-во записей в истории просмотра.

т.е. в итоге получается две таблицы: channel_tags, user_preferred_tags
структура:

channel_tags {
channel_id: INT,
tag_id: INT,
weight: INT
}

user_preferred_tags {
user_id: INT,
tag_id: INT,
weight: INT
}

Как на основе этой таблицы можно получить определенное кол-во каналов (channel_id), которые больше всего подходят по релевантности (набольшее кол-во совпадений тегов и их весов), в порядке убывания по этой же релевантности.

Буду безумно рад любой помощи. Догадываюсь что одним запросом дело скорее всего не обойдется.
Честно гуглил. Но гуглилось плохо, потому что не знаю как у гугла это спросить :(


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
39084



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |