同步电脑数据与在线数据

3 投票
2 回答
1065 浏览
提问于 2025-04-18 12:20

我做了一个在线网站,这个网站就像一个数据库的前端,客户可以在这里保存他们的销售信息。每个客户用自己的账号登录这个网站,只能看到自己的销售记录。这个数据库是用 SQL Server 2008 搭建的。

有些客户的电脑上装了一个第三方的Windows工具,这个工具也是一个数据库的前端,里面有特定的销售记录。他们用这个工具来打印收据。这个工具还提供了一个Python接口,可以用来更新数据库,即使不使用这个工具本身。我在我的电脑上安装了这个工具,并通过运行一个简单的Python脚本成功地向这个工具的数据库添加了记录。

目前,客户需要手动将我网站上的销售信息输入到他们电脑上的工具里。我想给他们提供一个自动化的方式来完成这个操作。这个同步过程应该只在客户请求时进行,实际上他们都希望这样做。这是为了确保他们有机会验证信息。

我该如何解决这个问题呢?我应该开发一个客户在自己电脑上安装的应用程序,还是可以通过浏览器来实现?无论哪种方案,都需要执行Python代码来更新他们电脑上的数据库,当然还有安全性的问题。

2 个回答

0

总的来说,你有一个网站和一个 SQL 服务器的应用程序。然后,有些用户有一个单独的本地数据库,并且用 Python 做了一个前端界面。你需要把这两个应用连接起来。

你可以通过一个 REST API 来公开你的 SQL 服务器数据库(可以用你喜欢的任何技术)。然后创建一个 Python 应用,去调用这个 API(可以通过一个按钮或者定时自动执行),然后运行需要的 Python 代码来生成报告。

另一种方法是把所需的报告功能直接添加到你的网页应用中。也就是说,你可以看看第三方数据库和报告提供的功能,然后把这些功能整合到你的网站里,这样就不需要再使用那个第三方应用了。

根据提供的信息,这就是你可以选择的两条路径。

3

你可以打开 REST API 来实现这个功能。

在你描述的当前模型中,你有一个数据库,用户通过一个网页应用与数据进行互动。这个网页应用实际上有两个部分,一个是服务器端的后台,另一个是用户看到的前端(虽然它们看起来像是一个整体的代码)。

所以目前你的架构大致是这样的:

DB(1) <--> Webapp Backend(2) <--> Webapp Frontend(3)

用户在第3层与第1层的数据进行交互。

现在,在你的新模型中,用户还可以通过一个独立的桌面应用来访问数据。因此,在这种情况下,桌面应用(第4层)需要像下面这样与你架构中的第2层进行沟通:

DB(1) <--> Webapp Backend(2) <--> Webapp Frontend(3)
                  |
                  |
            PC Desktop Application(4) <--> Local PC Database(5)

你需要模拟第2层和第3层之间的关系,以便让第2层和第4层之间也能进行数据访问。所以,你可以为第2层添加API支持。这个API需要进行身份验证,以确保只有相关用户能够访问数据。

为了进行身份验证,你可能需要生成用户访问令牌,或者根据用户的凭证进行验证。如果使用访问令牌,你还需要在你的数据库(第1层)中单独存储这些令牌,并定期过期或重新生成它们。

接下来,你可以写一个小的Python代码片段,让桌面应用的最终用户能够从他们的工具中同步数据。这个代码片段需要放在你在第4层运行数据库更新的地方。基本上,这个代码片段会包含访问你的API并获取数据的代码。

注意事项:

  1. 如果用户使用一组访问令牌获取数据,然后又用另一组凭证获取另一组销售数据,并且这两组数据同时存在于他的本地副本(第5层)中,那么这会导致数据混淆。这个情况可能会根据你的业务需求出现。如果出现了这种情况,你可能需要清除所有过去的销售数据,并重新初始化为当前值。
  2. 你还需要准备好应对数据请求的大小和频率,这可能会导致你的服务器容量需要增加。

撰写回答