gpt4 book ai didi

android - 从 MySql 到 Sqlite Android 的数据库同步云

转载 作者:行者123 更新时间:2023-11-29 20:33:24 25 4
gpt4 key购买 nike

我有一个可以随时更改的远程数据库。我需要找到一种方法来使我的 sqlite 数据库以更好和优化的方式更新所有更改。

我认为每个表有一个时间戳并仅将更新的表发送到客户端将是一种解决方案,或者可能每行有一个时间戳并仅将更新的行发送到客户端..

但是- 例如,我如何管理已删除的项目?- 我如何管理 Android 上的技术更新?

基本上,简而言之,在应用程序的某个时刻,我需要使用 API 下载更改并更新本地数据库。

有人有什么想法吗?

谢谢

最佳答案

由于这似乎是一种单向同步,我会:

  • 使服务器数据库上的每个表都有一个 UUID 列和一个最后一个列更新日期/时间列。

  • 创建将请求更新数据的 REST 调用。理想情况下,它会花点时间更新客户端。该日期应来自更新调用期间的服务器。

  • 服务器将扫描每个表,搜索日期 > 已传递日期的行。序列化数据并将其作为 JSON 与下一个请求的服务器日期/时间一起返回。

现在跟踪删除需要更多工作。您可以:

  1. 永远不要删除数据,只将行标记为已删除,这是最简单的,但根据您的数据,数据库中可能会出现大量行。
  2. 删除数据,然后在另一个表中跟踪已删除的行。如果/当所有客户端都已更新时,这些可以在一段时间后删除。
  3. 进行第二次更新调用,该调用将下推每行的所有 UUID 值和时间戳。然后客户端可以找出需要删除哪些行。

虽然这是最复杂的,但我可能会选择选项 3,因为我不喜欢旧数据闲逛。我的方向还取决于有多少客户端将与数据库同步。

关于android - 从 MySql 到 Sqlite Android 的数据库同步云,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38919735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com