我正在练习python flask,我将创建一个非常简单的音乐网站,现在正在创建数据库。
我是数据库的新手,所以我只是想帮助看一下表和关系是否正确。
我还会在playlist_songs songID列中存储多首歌曲ID吗?
userTable
userID (PK), username, email, password, level
songTable
songID (PK), songName, songArtist, songGenre, songDuration
playlistTable
playlistID (PK), userID (FK), playlistName, playlistDescription
playlist_songs
playlistID (FK), songID (FK)
答案 0 :(得分:3)
根据要求,我会根据您的问题和评论添加一些集体信息。
你的设计很好看。根据Rowland的建议,它可能使用订单栏。要订购的东西。如果您选择不添加此歌曲,则会以播放列表的随机顺序返回歌曲,或者您可以通过SongId
列进行排序并保证至少相同的顺序(在播放列表中)。但它不会改变。
您询问了如何将数据输入playlist_songs
表:
SongTable
SongId | SongName | ...
-----------------------------
1 | Happy Bithday | ...
2 | Last Christmas | ...
3 | Christmas tree | ...
4 | Some song | ...
PlaylistTable
PlaylistId | PlaylistName | ...
-------------------------------------
1 | My Birthday songs | ...
2 | My Christmas songs | ...
3 | All my songs | ...
Playlist_songs
PlaylistId (FK) | SongId (FK)
-----------------------------
1 | 1
2 | 2
2 | 3
3 | 1
3 | 2
3 | 3
3 | 4
正如您所看到的,Playlist_songs
表可以包含许多播放列表和许多歌曲。如果您向Playlist_songs
查询PlaylistId = 2
,则会返回SongId 2 & 3
,依此类推。
目前,主键必须是两列(复合键)的约束。这也是您可以添加Order
列的位置,或者只是添加一个独立的主键(例如Id)并按此顺序排序。