







|
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,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
39084
|
|