同步 SQL Server Compact 数据库以使用 C# 中的联机数据库
本文关键字:数据库 联机 SQL Server Compact 同步 | 更新日期: 2023-09-27 18:35:49
我正在创建一个桌面应用程序,用户希望在我将创建的网站上在线查看该应用程序的信息。
问题是我的应用程序正在使用SQL Server Compact作为数据库。我真的需要有关如何创建可以从本地桌面应用程序获取数据的 Web 服务的帮助。用户(也称为应用程序的管理员)也应该能够从网站进行更改,这将影响应用程序。他们还希望在网站上查看应用程序的信息,例如库存,联系人等。
我已经创建了桌面应用程序,但不知道创建Web应用程序/服务或将本地数据库同步到在线数据库。
首先,你真的需要一个本地数据库并保持与在线数据库同步吗?据我了解,您将同时开发它们,以便您拥有控制权。因此,我在这里看到的第一个合乎逻辑的步骤是创建一个 REST API [1,2,3] 并提供从您的在线数据库中读取和写入的端点。例如,如果你想构建一个简单的API来注册和登录用户,它应该在以下端点(操作):
- 发布/用户/注册
- 获取/用户/:id
- PUT/users/:id
- 发布/用户/登录
- 删除/用户/注销
因此,您可以注册一个新用户,查看其个人资料中的数据并能够对其进行更新,当然还可以登录和注销。
现在,您的在线和桌面应用程序都可以成为 API 的客户端。您可以在其中一个中添加、编辑和删除产品,更改也会显示在另一个产品中。当然,我在这里做一些假设(不需要实时更新,桌面客户端可以有一个始终在线的连接,响应有效载荷的大小不是很大,等等)。
如果您仍然需要本地数据库,则可以在要同步的表中更新字段 At,以便桌面应用程序只能查询 API 以获取给定日期后生成的更改,从而减少 API 响应的有效负载(以及使用的带宽,如果这很重要)。无论如何,我认为这一步是对真正问题的优化,所以你可能只在仔细考虑了 API 和客户端之后才会考虑所有这些(拥有本地数据库、跟踪更改和同步......)。回答以下问题可能会帮助您做出有意识的决定:
- 您将同时拥有多少个用户?
- 系统中有多少个项目(数据库记录)?
用户和 1000 条记录,则可能不必担心同步。但是,我们只能为您提供有关系统要求的更多信息。
引用:
- http://www.restapitutorial.com/
- https://github.com/interagent/http-api-design
- http://mattgemmell.com/api-design/
最好的问候和新年快乐,若昂