Я пытаюсь построить таблицы базы данных для представления следующих объектов первого порядка:
Пользователь, Исполнитель, Жанры.Пользователь может назначить множество жанров для многих художников и включить этих художников в свой концептуальный список.
User
-- has one more more artists.
-- has one or more genre/artist pairs
Genre
-- this is a lookup table, meaning there are exactly X genres in play
Artist
-- has many genre/user pairs
Именно эта последняя часть заставляет меня бегать кругами.
Я придумала следующие таблицы:
users
user_id
[some_metadata_columns]
genres
genre_id
genre_name
artists
artist_id
[some_metadata_columns]
users_artists
id
user_id
artist_id
user_genres
id
user_id
genre_id
artist_user_genres
id
user_artist_id
genre_id
Я не уверен, еслиэта установка между user / user_genres / artist_user_genres / genres даже имеет смысл.В этот момент у меня кружится голова, когда я смотрю на это слишком долго и под разными углами зрения, и я мог бы воспользоваться некоторыми советами / советами о том, как лучше это организовать.