2

假设您遇到以下情况:

一个应用程序在两台计算机上本地运行,XML 文件是共享的。

用户 1:加载文件。用户2:加载文件,更新第5行。用户1:更新第6行,点击“保存”。用户 2:单击“保存”。

我可以防止最后一次“保存”单击覆盖用户 1 的更新值吗?

MS Access DB 代替 XML 文件能解决这个问题吗?

4

3 回答 3

2

任何体面的数据库都可以解决诸如此类的并发问题。这就是为什么人们使用 MySQL/SQL Server/Oracle/PostGre 等而不是文本文件来存储数据的原因(例如 StackOverflow 中的帖子)。

于 2013-05-08T13:21:12.630 回答
1

访问可能会部分解决它们,在这方面它比完整的 dbms 要弱。如果你想保持基于文件,那么你有三个基本选项。

您编写一个“服务器”来处理对文件的并发访问。

您使用悲观锁,第一个要求编辑文件的人得到它,其他人是只读的

您使用乐观锁。如果文件自加载后发生更改,则不允许保存它。然后,您可以通过执行差异和冲突解决来加强这一点。考虑合并代码更改,但这会很快变得复杂。

注意,即使使用 dbms,您也可能需要一个冲突解决层。

于 2013-05-08T13:33:20.180 回答
1

访问将在某种程度上解决问题,因为您将只能在记录级别而不是文件(或表)级别进行锁定。

我会考虑使用更多的客户端/服务器数据库,因为访问是基于文件的 rdbms,并且不能很好地处理 10-15 个用户的并发,增加用户数量会非常糟糕。

MySQL 是一个好的开始,而且也是免费的 :)

于 2013-05-08T13:59:37.357 回答