我的公司使用devexpress控件在vb.net中开发了桌面应用程序。后端数据库是MySQL。
公司在零售店并在同一城市拥有2家零售店。两家商店总是保持忙碌,顾客总是在柜台等候。基本上,它是基于桌面的CRM应用程序,除了发票/收据模块外,其中有许多模块,它还有其他模块,如交付模块,安装模块,服务/修复模块,应收帐款模块以及各种后台使用的许多其他模块公司的部门。其他资源/硬件(如条形码打印机,收据打印机和条形码扫描仪)连接到台式PC上的CRM。
目前,大约有55个客户端始终连接到服务器并使用应用程序。
问题:
几周前,公司使用这个桌面应用程序和单个MySQL服务器没有问题,因为所有客户端都是通过LAN或WLAN连接的。
现在情况发生了变化,并提出了新的要求:公司计划在很远的距离开设新店。这些商店不能通过LAN或WLAN连接到当前的中央数据库。每个新分支机构都有大约20-30个客户,比如说“分支机构客户”
此外,还有现场执行官将使用他们的笔记本电脑工作。说“远程客户端”。他们的笔记本电脑上只有3G网络连接。
思想1:在所有分支机构PC上安装桌面应用程序,并通过互联网将它们连接到中央MySQL数据库服务器。
不可能:通过互联网连接获取如此庞大的数据非常缓慢。数据真的很大,例如如果客户打开“客户主”,那么将有超过600,000行,这需要大量的带宽和时间在互联网上打开。还有更多这样的模块可以加载大量数据。
此外,如果丢失互联网连接,客户端将无法操作该应用程序。如果他们不得不等待很长时间,排队等候的客户会发疯。
思考2:在分支机构安装新的MySQL服务器,然后所有桌面PC都将连接到该本地分支服务器。然后,本地分支服务器将通过MySQL复制选项连接到中央服务器。
不可能:由于MySQL复制仅限于单向复制,因此我们无法实现此结构。应用程序需要将数据从中央服务器移动到分支服务器,并实时从分支移动到中心。此外,MySQL复制工程仅限于仅使用一台服务器进行复制。在这种情况下,我们无法复制多个分支商店。有一个群集服务器选项,但公司无法承担许可费用。
思考3:有人建议我将整个桌面应用程序转移到Web应用程序中并获取数据库的云服务器。
不可能:我认为查看当前需求(快速访问),环境(零售店-pos)和连接到客户端的硬件(打印机,扫描仪) - 不建议使用Web应用程序和云数据库服务器。此外,如果没有互联网,整个商店都会瘫痪。
思考4:有人建议我应该从 MySQL服务器迁移到MSSQL 并保持桌面应用程序不变。 MSSQL能够通过互联网实时同步多台服务器。它没有像MySQL的单向复制和只有一个复制连接那样的限制。
我想,为了实现更快,更稳定的数据库连接,非常需要安装本地分支服务器。但我不知道这些不同的分支服务器如何连接到中央服务器。
我的问题:
•在特定条件下解决上述问题并成功满足公司要求的最佳方法是什么?更快,更连续地连接数据库服务器。还有所有分支机构和中央服务器之间的实时更新。如果互联网连接中断,则可以接受实时更新延迟,但客户不应受到影响。
•从MySQL迁移到MSSQL会解决问题吗?因为数据迁移不是问题,因为有许多工具可用于将数据库从一个平台转换为另一个平台。但问题是 - 应用程序非常庞大,有数百个为MySQL编写的查询。我想我也必须更改所有查询,因为MySQL和MSSQL的查询不一样。我是否必须更改所有查询或仅更改几个百分比查询?或者,如果有任何可用的工具将查询从MySQL转换为MSSQL查询。
•一般而言,这样的中小型零售店公司如何设置基础架构和应用程序?让我知道一些想法。