Я надеюсь, что один из вас более опытных программистов сможет пролить свет на эту ситуацию:
Мой сайт позволяет пользователям создавать профиль и вводить своих любимых музыкантов, все из которых находятся в уже существующей базе данных музыкантов.
На основе избранных артистов я хочу показать им других пользователей, которые выбрали тех же художников.
Может ли кто-нибудь предложить предложения о том, как это можно эффективно осуществить?
Я использую SQL и PHP для задней части.
Вам нужно будет создать таблицу перекрестных ссылок между пользователями и музыкантами, которая определяет отношения "любит". Как минимум, просто нужно будет содержать идентификатор пользователя и идентификатор музыканта.
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]);