对于多到多的关系,相交表被用来解决这两个一对多的关系。我的问题是,我现在有两个表,“播放列表”和“歌曲”。每首歌都出现在许多播放列表中,每一首播放列表都可以包含许多歌曲。为了解决这个问题,添加了第三个表,“歌曲日志”来解决多到多的问题。
但是,当涉及到向数据库中添加值时,我有点困惑。例如,如何使用相交表将一些(例如4)歌曲添加到播放列表表中?另外,我如何添加哪些歌曲在哪一个播放列表的细节?我是不是搞错了,这对很多人来说是真的吗?还是我完全搞错了?
我很困惑,所以一个清晰和基本的解释这方面的设计可能会有帮助!非常感谢。
发布于 2014-12-23 19:06:22
让我们把这个问题分解一下。
你有歌。
CREATE TABLE Songs
(
SongID int,
SongName varchar(50)
);你有播放列表的信息。(播放列表的名字,是谁创建的,随便吧)。
CREATE TABLE PlaylistDef
(
PlaylistID int,
PlaylistName varchar(50)
);你的歌都在播放列表里。歌曲可以在多个播放列表中。
CREATE TABLE Playlist
(
PlaylistID int,
SongID int
);让我们填充表:
INSERT INTO Songs
(SongID, SongName)
VALUES
(1, 'A'),
(2, 'B'),
(3, 'C'),
(4, 'D'),
(5, 'E');
INSERT INTO PlaylistDef
(PlaylistID, PlaylistName)
VALUES
(1, 'a'),
(2, 'b');
INSERT INTO Playlist
(PlaylistID, SongID)
VALUES
(1, 1),
(1, 2),
(1, 3),
(1, 4),
(2, 2),
(2, 3),
(2, 4),
(2, 5);然后,您现在可以运行类似的东西来查看特定的播放列表。
SELECT * FROM Playlist WITH (NOLOCK) WHERE PlaylistID = 2它会把这个还回去
PLAYLISTID SONGID
2 2
2 3
2 4
2 5这个有用吗?
https://stackoverflow.com/questions/27626160
复制相似问题