在SQLite数据库中存储订单的好方法是什么

FaultException

我在Android上开发和维护Google Tasks应用。目前,我有一个类,该类按顺序包含列表和任务ArrayList我正在考虑切换到SQLite,以更好地构建应用程序。我不确定将任务的顺序存储在数据库中的最佳和最简单的方法是什么。

现在,我可以简单地removeadd在不同的指数的项目,显然其他列表行索引在正确的顺序。使用SQLite数据库,我可以在每行中存储一个位置编号,并且每当我移动任务时,都相应地更新以下几行。

该系统的问题是并发性和可维护性:如果同时更新某行的位置(并且随后各行的位置增加/减少),则同步任务时可能会发生混乱,因为同步也更改了行位置。

我可以添加Mutex锁,但我不想这样做,我希望用户能够在同步的同时更新数据,如果发生冲突,则将丢弃新位置之一,而不会接下来的行被弄乱了。

我的问题:在SQLite数据库中存储和更新订单的最佳方法是什么?

巴贝奇

sort_position向每行添加一个的问题在于它不能自动更新,因为要交换列表中的两个项目,您需要同时更改两个位置。当对同一行进行更改时,数据库在保证原子性方面要好得多。

更好的方法是将排序列作为优先级-值可以稀疏,因此可以在两个相邻的列之间放置一行,并且两个项目可以具有相同的值,而不会带来一致性问题。如果值稀疏,则可以通过仅更改一个值来交换两个项目,因此可以更优雅地处理并发更新(尽管如果两个代理尝试重新排列列表的同一部分,则可能会遇到意外情况)。

另一种处理方式可能是将订单作为一个值存储在不同的表中,例如作为项目ID列表存储。这样做的好处是可以更精确地控制排序,而不会因交错更新而出现乱码状态,但是更为复杂(处理丢失或未知的项目,如何同时处理两个更新)。除非您真的需要,否则我不会尝试。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在SQLite数据库中存储订单的好方法是什么

来自分类Dev

在mongo数据库中定义用户角色的好方法是什么

来自分类Dev

将其中包含对象的PHP数组存储到类似SQLite的数据库中的最佳方法是什么?

来自分类Dev

从数据库中获取特定订单的订单ID的查询将是什么

来自分类Dev

备份sqlite数据库的最佳方法是什么?

来自分类Dev

使用PHP在数据库中存储用户密码的最安全方法是什么?

来自分类Dev

在数据库中存储格式化内容的标准方法是什么?

来自分类Dev

在关系数据库中存储数组的最佳方法是什么?

来自分类Dev

在MySQL数据库中存储特殊字符的最佳方法是什么?

来自分类Dev

在PostGres数据库中存储复选框的最佳方法是什么

来自分类Dev

在数据库表中存储宾果卡号码的最佳方法是什么

来自分类Dev

在SQLite数据库中插入超过一亿行的最佳方法是什么?

来自分类Dev

使PHP网站接近面向对象的数据库的好方法是什么?

来自分类Dev

从本地客户端查询MongoDB数据库的好方法是什么?

来自分类Dev

这是在SQL数据库中存储项目列表的好方法吗?

来自分类Dev

在python2.7中通过SqlAlchemy检查数据库表中唯一值是否存在的好方法是什么

来自分类Dev

进行注册身份验证并将其存储在数据库中的正确方法是什么?

来自分类Dev

在sqlite的sqlite数据库中,游标对象是什么?

来自分类Dev

在Oracle数据库中,$是什么?

来自分类Dev

在Python中存储字符串的好方法是什么?

来自分类Dev

在数据库中存储布尔值的最佳数据类型是什么

来自分类Dev

在EJB中存储数据库连接数据的惯用方式是什么?

来自分类Dev

我将 16 位数字存储到数据库中的数据类型是什么?

来自分类Dev

在我的sql数据库中存储自定义报告设置的建议架构/数据库设计是什么?

来自分类Dev

在不使用外部数据库或表的情况下存储信息的最佳方法是什么?

来自分类Dev

初始化SQLite数据库的正确方法是什么?

来自分类Dev

编写 SQLite 数据库查询以获取用户并传递用户表的正确方法是什么

来自分类Dev

存储多个主题的最佳数据库设计是什么?

来自分类Dev

Woocommerce数据库中订单的运输方法

Related 相关文章

  1. 1

    在SQLite数据库中存储订单的好方法是什么

  2. 2

    在mongo数据库中定义用户角色的好方法是什么

  3. 3

    将其中包含对象的PHP数组存储到类似SQLite的数据库中的最佳方法是什么?

  4. 4

    从数据库中获取特定订单的订单ID的查询将是什么

  5. 5

    备份sqlite数据库的最佳方法是什么?

  6. 6

    使用PHP在数据库中存储用户密码的最安全方法是什么?

  7. 7

    在数据库中存储格式化内容的标准方法是什么?

  8. 8

    在关系数据库中存储数组的最佳方法是什么?

  9. 9

    在MySQL数据库中存储特殊字符的最佳方法是什么?

  10. 10

    在PostGres数据库中存储复选框的最佳方法是什么

  11. 11

    在数据库表中存储宾果卡号码的最佳方法是什么

  12. 12

    在SQLite数据库中插入超过一亿行的最佳方法是什么?

  13. 13

    使PHP网站接近面向对象的数据库的好方法是什么?

  14. 14

    从本地客户端查询MongoDB数据库的好方法是什么?

  15. 15

    这是在SQL数据库中存储项目列表的好方法吗?

  16. 16

    在python2.7中通过SqlAlchemy检查数据库表中唯一值是否存在的好方法是什么

  17. 17

    进行注册身份验证并将其存储在数据库中的正确方法是什么?

  18. 18

    在sqlite的sqlite数据库中,游标对象是什么?

  19. 19

    在Oracle数据库中,$是什么?

  20. 20

    在Python中存储字符串的好方法是什么?

  21. 21

    在数据库中存储布尔值的最佳数据类型是什么

  22. 22

    在EJB中存储数据库连接数据的惯用方式是什么?

  23. 23

    我将 16 位数字存储到数据库中的数据类型是什么?

  24. 24

    在我的sql数据库中存储自定义报告设置的建议架构/数据库设计是什么?

  25. 25

    在不使用外部数据库或表的情况下存储信息的最佳方法是什么?

  26. 26

    初始化SQLite数据库的正确方法是什么?

  27. 27

    编写 SQLite 数据库查询以获取用户并传递用户表的正确方法是什么

  28. 28

    存储多个主题的最佳数据库设计是什么?

  29. 29

    Woocommerce数据库中订单的运输方法

热门标签

归档