В настоящее время у меня возникают некоторые технические трудности с веб-приложением для блога. Я хочу создать страницу «Обнаружение», где пользователи смогут находить новые сообщения в зависимости от их интересов. Я сделаю это, добавив ключевые слова к этим сообщениям. Таким образом, я могу просто выбрать посты, в которых совпадают интересы пользователя и ключевые слова поста. Теперь я понял, что забрел в глубокие воды.
После долгих исследований я решил поделиться своей проблемой и, возможно, получить некоторые рекомендации. У меня 4 стола, «пользователи», «должность», «ключевые слова», «интересы». «ключевые слова» таблица содержит «Post_id» а также «Keyword_value». Таблица «интересы» содержит «Идентификатор пользователя» а также «Interest_value».
Теперь, как я могу выбрать сообщения из «должность» таблица, в которой ключевые слова, связанные с сообщением, соответствуют интересам, связанным с текущим пользователем.
Заранее спасибо. Все отзывы приветствуются.
ОБРАЗЦЫ ДАННЫХ:
«пользователи»
[
Было бы очень полезно, если бы вы также предоставили некоторые данные. Я подозреваю, что вы описали свои таблицы неправильно — я думаю, что вы имели в виду, что ключевые слова стол имеет post_id а также keyword_value и интересы стол имеет Идентификатор пользователя а также interest_value. Если это так, то этот запрос должен работать:
SELECT *
FROM posts
WHERE post_id IN (
SELECT post_id
FROM keywords
WHERE keyword_value IN (
SELECT interest_value
FROM interests
WHERE user_id = @userId
)
)
Других решений пока нет …