-1

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

在此处输入图像描述

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

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

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

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

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

4

2 回答 2

1

一种方法是使用像 SymmetricDS 或 Daffodil 这样的数据库同步工具:

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

它将通过 HTTP(S) 同步数据库更改。您也可以设置策略,例如不向所有人提供所有数据。

您的中央数据库应该支持各种级别的可串行化,并且您可以尝试实现乐观并发控制以防止同时更新相同的行。

于 2013-11-14T18:40:24.043 回答
0

试试 SAP(以前称为 Sybase)的 SQL Anywhere,它提供高度安全的数据库的桌面、服务器和移动版本,这些数据库使用内置的 Mobile Link 技术进行数据同步。非常易于安装和使用。甚至还附带了一个 DBMS 管理工具 Sybase Central。易于设计模式和设置数据应如何在服务器/桌面/移动数据库之间同步。也可以安装在各种现代操作系统中。

于 2022-01-31T16:14:17.230 回答