因此,我对SQL还是很陌生,我正在尝试将歌曲收集数据库建模为第一个项目。我的实体关系模型如下所示:
现在,这可能有效(我认为),如果每个专辑和曲目只有一个流派,则可以将其关联。然后,我将得到以下表格:
Tablename: Album
AlbumID, Name, Releaseyear, Genre
Tablename: Artist
ArtistID, Name
Tablename: Track
TrackID, TrackNr, AlbumID, Name, Genre
所以我的问题是,如果我想拥有多个流派,我需要制作一个单独的流派表,我已经存在的表将如何更改,或者我需要额外的表?
修改: 我将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)
这种建模方法行得通还是我遗漏了一些东西?我知道某个曲目可以有多个艺术家,但是我希望对其进行建模,以使曲目仅出于简单性的目的仅显示一位艺术家。