Динамическое сопоставление данных между пользователями на основе выбора пользователя

0

Я надеюсь, что один из вас более опытных программистов сможет пролить свет на эту ситуацию:

Мой сайт позволяет пользователям создавать профиль и вводить своих любимых музыкантов, все из которых находятся в уже существующей базе данных музыкантов.

На основе избранных артистов я хочу показать им других пользователей, которые выбрали тех же художников.

Может ли кто-нибудь предложить предложения о том, как это можно эффективно осуществить?

Я использую SQL и PHP для задней части.

Теги:

1 ответ

1
Лучший ответ

Вам нужно будет создать таблицу перекрестных ссылок между пользователями и музыкантами, которая определяет отношения "любит". Как минимум, просто нужно будет содержать идентификатор пользователя и идентификатор музыканта.

CREATE TABLE user_likes_musician (
    user_id INT NOT NULL,
    musician_id INT NOT NULL,
    PRIMARY KEY(user_id, musician_id)
);

Чтобы найти пользователей, которым понравился конкретный музыкант, вы можете просто присоединиться к таблице с таблицей пользователей:

SELECT * FROM users
    JOIN user_likes_musician
        ON (users.ID = user_likes_musician.user_id
            AND user_likes_musician.user_id <> [current user id]
            AND user_likes_musician.musician_id = [musicians id]);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню