创建数据库。需要设计帮助

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)并按其排序。