这很令人困惑。看来我需要至少有一个多对多关系。


2岁以上的歌手可能演唱过某首曲目-如何将其存储在数据库中?
在显示该曲目时,我想链接到每个艺术家,以便用户单击该曲目时可以打开该艺术家的个人资料页面。


任何人都可以在设计一个或多个课程以实现这一目标时为我提供一些帮助吗?

最佳答案

试试这样的东西

tblSongs
   SongId
   Title
   YearProduced
   etc.

tblArtist
   ArtistId
   Name
   ProfilePage
   etc..

tblSongArtists
    SongId
    ArtistId

Then your queries could look something like

SELECT Title, YearProduced, Name, ProfilePage
FROM tblSongs  S
LEFT OUTER JOIN tblSongArtists SA ON SA.SongId = S.SongId
LEFT OUTER JOIN tblArtists A ON A.ArtistId = SA.ArtistId
WHERE Title = 'I got the blues'  -- ....
ORDER BY SongId  -- or Song Title  (*)


(*)order by子句是在搜索条件产生多首歌曲的情况下,并且如果您希望按顺序保留给定歌曲的艺术家。
这样的查询会为多位歌手的歌曲生成多行,每位歌手一行,对tblSongs的列值进行重复。

10-05 19:25