dea*_*mon 10 orm ruby-on-rails list ruby-on-rails-3
我想实现一种收藏列表.让我们看一个这个例子的播放列表:
Song A
Song D
Song B
Song C
Run Code Online (Sandbox Code Playgroud)
应该保存歌曲的顺序,用户应该能够重新排列此顺序并在列表中的任意点插入新元素.
我的想法是在保存列表时使用字段"position"并为列表的所有元素重置它.我认为这就是Javas Hibernate所做的.
另一个想法是使用具有很大差异的位置编号,比如1000,这样仍有修改的余地:
Song A 1000
Song D 2000
Song B 3000
Song C 4000
Run Code Online (Sandbox Code Playgroud)
歌曲C将插入位置编号为1500的A和D之间:
Song A 1000
Song C 1500
Song D 2000
Song B 3000
Run Code Online (Sandbox Code Playgroud)
有更好的想法吗?
如果你想自己推出,这个问题的答案可能会有所帮助:
似乎共识只是使用订单字段并在保存时重新排序.如果允许用户以交互方式进行客户端重新排序,则可以减少数据库工作量,并只发送最终列表以保存回服务器.