我只是想在序言中说我不是要求分发,我只是想要朝着正确的方向轻推,因为我真的不知道从哪里开始。
我希望开发一个项目,许多移动应用程序将使用中间数据库与桌面应用程序进行交互。
移动应用:Android 桌面应用程序:C#WPF
一般的想法是,移动应用程序将从数据库中获取记录,更新它,将其发布回数据库,然后桌面应用程序将能够读取更新的数据。我想在编码之前彻底设计它,因为我知道这可能是一个潜在的噩梦。
如果多个移动应用程序当前正在写入数据库,这将如何工作?是否存在“写入队列”,因为第一个写入器将锁定DB以进行写入?
是否允许Mobile应用程序直接写入数据库?或者是否应该有一种方法可以将包含所有相关数据的“对象”发送到桌面应用程序,然后桌面应用程序可以负责定期写入数据库?
我猜最好的方法是将数据库存储为桌面上的本地副本,并定期推送到云端,但如上所述,如何将数据从移动应用程序直接发送到桌面没有写入中间数据库?
为轻推球员干杯,非常感谢。我目前刚刚开始学习Android应用程序开发,所以我将在继续教程的同时进行设计。
答案 0 :(得分:1)
一种方法是使用SymmetricDS或Daffodil等数据库同步工具:
它可以在每台Android设备上运行,也可以在中央数据库计算机上运行,也可以在台式计算机上运行。
它将通过HTTP(S)同步数据库更改。您也可以设置策略,比如不给每个人所有数据。
您的中央数据库应支持各种级别的serializability,您可以尝试实施optimistic concurrency control以防止同时更新相同的行。