我正在为我的名为"playlist_songs“的spotify副本构建一个播放列表表,如下所示:
该表由外键组成: playlistID、userID和songID。我认为它的主键应该是playlistID、userID和orderID的组合。
我希望orderID是一个自动递增的整数,对于每个唯一的playlistID/userID组合,它都是从1开始的。
我还希望用户能够更改其歌曲的顺序,这在某些情况下将需要更新给定的playlistID/userID组合的所有以下orderID
我将如何实现这一点?仅仅使用SQL就可以做到吗?
发布于 2021-11-05 20:48:17
有时我不明白为什么很多数据库都有一个自动增量字段类型(sequence),可以在数据库上安全地增长,有些开发人员想手动增加这个字段,为什么?
如果要手动增加字段值,则必须在更新前锁定这些记录,并且在更新后(增加后)可以解锁此记录。这是必要的,以便同时可能意外地从其他用户获得用于插入的重复值。为安全起见,必须使用select For update命令。
For more information how we can use this command please visit this link
为了对歌曲进行排序,我建议通过排序添加一个额外的字段。更新playlistID
或orderID
以订购歌曲,这是不推荐的
附注:有时,在我们的表中,主键可以是两个或三个字段的组合。但我建议为主键添加一个自动增量的id
字段,通常我们将是连接表,在连接条件中,我们将使用一个条件,而不是三个条件。
https://stackoverflow.com/questions/69841988
复制