我有一个名为notes的sqlite表。它有id,title,text。
在我的应用程序中,用户可以按照他想要的顺序放置笔记。 他可以拖动和移动音符改变他们的位置。
首先,我想创造"位置"领域。但这不好主意。 如果一张纸条改变了它的位置,其他纸币也会改变它们的位置。所以例如如果它将成为一千条记录,那么由于一个动作而改变所有记录并不是一个好主意。
我如何解决这个问题,所以用户会更改音符位置并将此状态保存到数据库中?
答案 0 :(得分:1)
只存储上一个和下一个节点。然后你总是可以查询订单。或者您只是始终只保存节点。
答案 1 :(得分:1)
数据库需要另一个包含用户首选订单的列。 添加另一列并不是一个坏主意:添加一个包含整数数据类型的新列,例如ListOrder。
按照增加ListOrder值的顺序显示注释。
Select * from Table Order By ListOrder
如果用户在UI中按一个单位向上拖动一个音符,则将该行的ListOrder中的整数递增1.
Update Table Set ListOrder=ListOrder+1 Where ListOrder=(Select ListOrder-1 From Table where Column_x = 'blob')
请注意, column_x 是包含某些标识数据类型的行的另一个方面,例如用户名。
答案 2 :(得分:0)
我认为最好的方法是在用户不做更多更改时保存最终位置。全扫描或其他什么。