加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 与远程数据库同步的Android应用程序数据库

发布时间:2020-12-20 13:22:40 所属栏目:Python 来源:网络整理
导读:我正处于 Android应用程序的规划阶段,该应用程序与Web应用程序同步. Web端将使用Python编写,可能是Django或Pyramid,而Android应用程序将是简单的java.我的目标是在没有数据连接的情况下让Android应用程序工作,不包括应用程序的社交/ Web方面. 这将是一个普通
我正处于 Android应用程序的规划阶段,该应用程序与Web应用程序同步. Web端将使用Python编写,可能是Django或Pyramid,而Android应用程序将是简单的java.我的目标是在没有数据连接的情况下让Android应用程序工作,不包括应用程序的社交/ Web方面.

这将是一个普通的应用程序,所以我想坚持一些可以通过市场上的单击轻松安装的东西,而不需要单独的下载,如CloudDB for Android.

我没有找到任何支持此功能的数据库,因此我将自己编写.编写同步逻辑的一个警告是,用户之间将存在一些共享数据,多个用户将能够写入.这是一个独奏项目,所以我想我会通过这里来看看我是否完全偏离基础.

>应用程序将处理本地保存到本地sqlite数据库,然后将消息发送到服务,该服务将尝试将这些更改同步到远程数据库.
>同步服务将在检查本地应用程序的消息(即,其他用户对共享数据的更改)以及将本地更改写入远程服务器之间切换.
>所有数据都有一个用于跟踪更改的时间戳
>从应用程序写入服务器时,如果服务器有更新的信息,将向用户发出有关冲突的警告,并提示覆盖服务器具有的内容或放弃本地更改.如果自应用上次读取数据后服务器尚未更新,请处理更新.
>当数据从服务器传到应用程序时,如果服务器有更新的数据覆盖本地数据,否则丢弃它,因为它将在下一次由更新服务器的应用程序处理.

这是一些问题:

1)听起来有点矫枉过正吗?有没有更简单的方法来处理这个?

2)这个处理应该在哪里进行?在客户端或服务器上?我认为客户端的优势在于服务器上的处理较少,但如果它在服务器上,则可以更容易地实现其他客户端.

3)我应该如何处理来自服务器的更新?增量轮询或彗星/ websocket?要记住的一件事是,我宁愿在Webfaction上安装最小的安装,因为这是启动.

一旦解决了这些问题,我就会计划为极客社区提供解决方案.

解决方法

1)看起来这是管理本地和安全的好方法.远程更改支持脱机工作.我不认为这有点矫枉过正

2)我认为,您应该使用本地时间戳在本地缓存用户的更改,直到同步完成.然后,服务器应管理所有处理:跟踪当前版本,提交和回滚更新尝试.减少对客户的处理=对您更好! (更容易支持和实施)

3)如果我想支持离线模式,我会选择轮询,因为在离线状态下,您无法保持套接字打开,每次恢复Internet连接时都必须重新打开套接字.

PS:看起来这是VEEERYY OLD的问题……大声笑

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读