创建数据库。需要设计帮助
Creating a database. Design help needed
我正在练习 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)
应要求,我将根据您的问题和评论添加一些集体信息。
您的设计看起来不错。正如 Rowland 所建议的那样,它也许可以使用顺序列。要订购的东西。如果您选择不添加此项,歌曲将 return 在播放列表中以某种随机顺序排列,或者您可以按 SongId
列排序并至少保证相同的顺序(在播放列表中).但它不会改变。
您询问数据是如何输入到 playlist_songs
table:
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
table 可以包含许多播放列表和许多歌曲。如果您在 Playlist_songs
中查询 PlaylistId = 2
,它将 return SongId 2 & 3
,依此类推。
目前,主键必须是对两列的约束(复合键)。这也是您可以添加 Order
列的地方,或者只添加一个独立的主键(例如 Id)并按其排序。
我正在练习 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)
应要求,我将根据您的问题和评论添加一些集体信息。
您的设计看起来不错。正如 Rowland 所建议的那样,它也许可以使用顺序列。要订购的东西。如果您选择不添加此项,歌曲将 return 在播放列表中以某种随机顺序排列,或者您可以按 SongId
列排序并至少保证相同的顺序(在播放列表中).但它不会改变。
您询问数据是如何输入到 playlist_songs
table:
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
table 可以包含许多播放列表和许多歌曲。如果您在 Playlist_songs
中查询 PlaylistId = 2
,它将 return SongId 2 & 3
,依此类推。
目前,主键必须是对两列的约束(复合键)。这也是您可以添加 Order
列的地方,或者只添加一个独立的主键(例如 Id)并按其排序。