我们专门为小企业开发了一个管理软件。但是,出乎意料的是,一些大公司喜欢它,并开始使用它。问题是,我们的软件只在本地工作(一家商店),而较大的企业希望我们使软件在线工作(两个或更多的商店在不同的地方,但有相同的数据库)。
因此,我们希望利用我们已经存在的JAVA Swing用户界面,使我们的本地软件在线工作。
我们已经考虑了一些解决方案,但是,由于这将是一个巨大的变化,我们想知道什么是最好的方式进行下去。
重要信息:
下面是我们考虑过的解决方案。请告诉我们是否有更好的方法。
解决方案#1
一个单一的数据库在互联网和所有客户端连接到它。
缺点:
解决方案#2
所有客户都会在互联网上拥有自己的数据库,拥有不同的密码。
缺点:
解决方案#3
internet中的单个数据库,但客户端通过验证客户登录数据并返回查询结果的web服务进行连接。
缺点:
解决方案#4

我们所有的客户在互联网上都会有一个单一的数据库。
此外,所有客户端都将在本地拥有自己的数据库,因此它们可以执行快速选择查询。
每个更新查询将首先发送到web服务,该服务将在联机数据库中执行查询,如果成功执行,则返回。
此外,我们将有一种机制,使本地数据库与在线数据库不时地同步。
缺点:
有更好的方法吗?怎么做?
发布于 2014-11-11 18:46:21
我将使用解决方案3,构建一个数据库支持的服务/API,并让桌面客户端对自己进行身份验证并使用它。我将避免像解决方案4那样拥有一个本地数据库。您不能依赖您的用户不意外地破坏它,并导致同步丢失或损坏。此外,当您想要创建不同的客户端(例如,移动应用程序)时,拥有一个本地数据库会减慢您的速度。
如果您决定使用解决方案#3,当前的实际标准是基于JSON的REST。另外,您应该注意到,可以使用许多缓存技术来减少实际运行的查询数量。
https://stackoverflow.com/questions/26871426
复制相似问题