Так что я очень плохо знаком с SQL и пытаюсь смоделировать базу данных коллекции песен в качестве первого проекта.Моя модель отношений сущностей выглядела бы примерно так:
![ER-Model](https://i.stack.imgur.com/5J99S.png)
Теперь это может сработать (я думаю), если бы у каждого альбома и трека был только один жанр, с которым он мог быть связан.Тогда у меня будут следующие таблицы:
Tablename: Album
AlbumID, Name, Releaseyear, Genre
Tablename: Artist
ArtistID, Name
Tablename: Track
TrackID, TrackNr, AlbumID, Name, Genre
Поэтому мой вопрос: если бы я хотел иметь несколько жанров, мне нужно было бы создать отдельную таблицу жанров и как бы изменились мои уже существующие таблицы или какие дополнительные таблицымне нужно?
edit: Я обновил свою ER-модель до предположения, которое дал мне @EzLo.Новая модель выглядит следующим образом:
https://i.stack.imgur.com/ffqt5.png
Таблицы, с которыми я бы закончил, теперь:
Tablename: Album
AlbumID, ArtistID(foreign key) Name, Releaseyear
Tablename: Artist
ArtistID, Name
Tablename: Track
SongID, TrackNr, AlbumID(forgot to draw in ER-model), Name
Tablename: Genre
GenreID, Name
Tablename: GenreByAlbum
GenreID(foreign key), AlbumID(foreign key)
Tablename: GenreByTrack
GenreID(foreign key), SongID(foreign key)
Работает ли этот подход к моделированию или я пропустилчто-то?Я знаю, что в треке может быть несколько исполнителей, однако я хочу смоделировать его так, чтобы по причинам простоты трек показывал только одного исполнителя.