Трехсторонняя ассоциация - PullRequest
       20

Трехсторонняя ассоциация

0 голосов
/ 10 февраля 2019

Я пытаюсь построить таблицы базы данных для представления следующих объектов первого порядка:

Пользователь, Исполнитель, Жанры.Пользователь может назначить множество жанров для многих художников и включить этих художников в свой концептуальный список.

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 даже имеет смысл.В этот момент у меня кружится голова, когда я смотрю на это слишком долго и под разными углами зрения, и я мог бы воспользоваться некоторыми советами / советами о том, как лучше это организовать.

...