我想知道其中哪一个最适合我的应用程序的需求。该应用程序将分布在多台电脑上并共享一个公共数据库。该数据库最多可以包含大约 20 000 个条目。基本上它只是一个会议经理,数据库中的每个条目都代表一个会议。
例如,我可能想展示涉及某个人的每一次会议或与某个对象的每次会议。在这一点上这并不重要,因为这只是我可能想要制作的数据表示。
事实是我有一定的局限性:
- 我正在用 C# 做应用程序
- 我无法在用户的电脑上安装任何东西(如果需要,我必须只复制 .exe + dll)
- 数据库将位于网络存储上,最多可同时访问 10 台电脑
- 我从未使用过 SQL Server CE 或 SQLite(实际上也没有使用任何其他数据库)
我的第一个想法是使用纯 XML 数据库,因为使用 .NET 类序列化程序非常简单。为了修改数据库,用户必须获得对文件的写访问权。同时,所有其他用户都将处于只读状态。在任何时候,他们都可以通过在获得此访问权时创建的文件知道谁拥有写访问权。每个处于读取模式的应用程序也将有一个正在运行的进程监视 XML 文件,以便在数据库发生任何更改时通知其用户,让用户能够重新加载它。
听说过一点 SQLite 和 SQL Server CE,我不太确定我在可伸缩性和性能方面是否有正确的方法。我不介意学习如何使用它们。我主要担心的是我真的无法在用户电脑上安装任何东西,我想让用户的应用程序部署尽可能简单(理想情况下,复制/粘贴应用程序文件夹)。
所以这里有问题:
编辑 2:我猜它已经关闭,因为它可能会引发关于 SQLite 与 SQL Server CE 的争论,这不是我想要的
- 在上述情况下,使用 XML 文件还是真正的数据库更好?
- 一旦我们有许多条目,“真正的”数据库在性能之外给 XML 带来什么好处?
类似问题: Xml 或 Sqlite,何时为数据库删除 Xml?
编辑:这里为您提供更多信息,以帮助您了解我所处的环境:
实际使用的系统是 Word。一切都写在网络上某些用户共享的文件夹中的文件中。用户从该文件中检索信息以根据他们需要的数据表示创建其他文件。我想创建一个应用程序来简化他们的流程。由于他们已经习惯了他们的系统,如果我的应用程序需要任何类型的操作来安装它,他们可能会想要坚持使用他们的系统。每次安装都需要通过他们的 IT 服务,这是缓慢而复杂的,尤其是对于非官方应用程序。
这些电脑可能会阻止他们的用户做任何常见任务之外的任何事情。这就是为什么我想让我的应用程序尽可能简单(这样我就可以通过 USB 密钥传递可执行文件和 dll 并且它可以以最少的用户交互运行)