Closed. This question is opinion-based 。它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文来回答。

2年前关闭。



Improve this question




我正在克隆和扩展 Google Tasks 应用程序。我希望能够存储行顺序。我在数据库中创建了一个字段,名为 rowNumber。当用户在其他行中间插入一行时,我必须在许多其他行中更新此字段以实现所需的输出。有更好的方法吗?

顺便说一句,该应用程序是为 Google AppEngine (Python) 制作的。

最佳答案

使 rowNumber 为浮点数。当用户在行 x 和 y 之间插入时,新行得到 rowNumber = (x.rowNumber + y.rowNumer)/2。

当您想移动一行时,只需根据目标位置以相同的方式更新其 rowNumber。

新行获取 rowNumber 例如。最大 + 256。

编辑 Microsoft 在 SQL Server 2008 中使用新的 HierarchyId 数据类型解决了这个问题。您几乎可以根据需要多次在 2 个项目之间插入 - 直到用完 HierarchyId 最大大小。

关于database-design - 在数据库中存储行之间的顺序的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1151286/

10-10 09:29