设计多对一移动应用程序 - >数据库 - >桌面应用项目

时间:2013-11-14 06:54:38

标签: c# android wpf mobile database-design

我只是想在序言中说我不是要求分发,我只是想要朝着正确的方向轻推,因为我真的不知道从哪里开始。

我希望开发一个项目,许多移动应用程序将使用中间数据库与桌面应用程序进行交互。

enter image description here

移动应用:Android 桌面应用程序:C#WPF

一般的想法是,移动应用程序将从数据库中获取记录,更新它,将其发布回数据库,然后桌面应用程序将能够读取更新的数据。我想在编码之前彻底设计它,因为我知道这可能是一个潜在的噩梦。

如果多个移动应用程序当前正在写入数据库,这将如何工作?是否存在“写入队列”,因为第一个写入器将锁定DB以进行写入?

是否允许Mobile应用程序直接写入数据库?或者是否应该有一种方法可以将包含所有相关数据的“对象”发送到桌面应用程序,然后桌面应用程序可以负责定期写入数据库?

我猜最好的方法是将数据库存储为桌面上的本地副本,并定期推送到云端,但如上所述,如何将数据从移动应用程序直接发送到桌面没有写入中间数据库?

为轻推球员干杯,非常感谢。我目前刚刚开始学习Android应用程序开发,所以我将在继续教程的同时进行设计。

1 个答案:

答案 0 :(得分:1)

一种方法是使用SymmetricDS或Daffodil等数据库同步工具:

它可以在每台Android设备上运行,也可以在中央数据库计算机上运行,​​也可以在台式计算机上运行。

它将通过HTTP(S)同步数据库更改。您也可以设置策略,比如不给每个人所有数据。

您的中央数据库应支持各种级别的serializability,您可以尝试实施optimistic concurrency control以防止同时更新相同的行。