我正在尝试在 App 引擎中存储一个可排序的队列。可排序,因为用户可以创建自定义订单。考虑它的最简单方法是歌曲列表。每 5 分钟从列表中选择一首新歌并播放。但是用户可以添加新歌曲并调整列表的播放顺序。播放一首歌曲后,它将从列表中删除。我如何为列表中的大量歌曲执行此操作。
我想过添加一个 sortOrder 字段,但是每当播放一首歌时,我都需要更新整个列表。然后我想保持浮动排序顺序,只跟踪最高和最低条目,但这似乎如果一次添加许多歌曲可能会导致麻烦。
任何有关我可以查看的设计模式的信息将不胜感激。另外,有什么方法可以使用歌曲的唯一键值来排序我的列表。我是否保证所有新的 id 都会比之前创建的更大,或者有什么方法可以保证这一点?