0

我正在开发一个旨在处理两方或多方之间的请求的应用程序。这些请求存储在服务器上的 sqlite 文件中。当任何一方想要检查他们是否收到任何请求时,他们只需下载数据库并过滤掉针对他们的请求。这部分工作正常。

但是,在发送请求和上传修改后的 sqlite 文件时,我有点困惑,因为我以前没有这样做过。如何避免多方尝试同时更新数据库并覆盖彼此的更新?

我不追求源代码示例,而只是来自以前做过类似事情的任何人的想法。

谢谢

4

2 回答 2

2

多个用户不应通过下载、修改然后将其发送回(并覆盖)来更新服务器上的数据库。这很慢,显然存在并发问题。

您应该考虑在数据库前面放置一个前端应用服务器。类似于 SOAP Web 服务或宁静的 http 服务器。一些 webApi 服务器选项:Node.js + expressAsp.net webapiRuby on Rails + Active Record - 还有许多其他选项。

于 2013-04-30T11:50:08.350 回答
0

SQLite 非常适合嵌入式环境。您可以将数据库直接绑定到应用程序以进行设置等。一旦您开始使用更传统的客户端/服务器架构,如您想要的架构,SQLite 可能不是理想的解决方案。我可以看到两个选项:

  • 抽象对数据库的调用,以便通过对数据库的 SQL 调用而不是通过替换数据库文件以正确的方式进行更新。这可以通过构建导入/导出功能轻松完成。您不想一直传输整个数据库,因为这违背了首先拥有数据库的目的。

  • 使用像 MySQL 这样的实际 SQL 服务器,并使用它从您的客户端应用程序连接。但是,您仍然希望在两者之间添加某种层,因为让整个 Internet 都可以访问 SQL 服务器是一个坏主意。如果这是一个 Intranet 应用程序,你应该没问题。

约翰。

于 2013-04-30T11:46:21.417 回答