为仅具有文件服务器的多用户应用程序选择数据库 (Windows)



我需要为在文件服务器上使用同一数据库的基于 Windows 的应用程序的多个同时用户选择一个数据库解决方案。

我需要一个可以存在于 Window OS 文件服务器上的数据库。

  1. 必须由单个 MS 上运行的多个应用程序共享Windows 机器(主要是 Windows 7)
  2. 由文件服务器提供。
  3. 无法使用数据库服务器/引擎(由于内部政治规则)或网页服务器。
  4. 首选将 C# 用于一组 WPF 应用程序。
  5. 当前使用一组VB应用程序与一组MS Access一起使用文件 - 其中一个应用程序出现问题,需要重写。
  6. 当前一组大约六个 *.mdb 文件(有些带有链接表)约为 400 MB。预计每年增长 10 到 20 MB。
  7. 自己的 PC 上,每个用户最多有十几个并发用户现在。不要指望将来会有很大的变化。
  8. 所有应用都会将数据读取和写入数据库。
  9. 目前有几个(大约 4 人)在 Access 中编写即席查询 -他们将继续需要能够以某种方式编写查询。
  10. 希望防止数据库结构更改(添加表/列)的最终用户。
  11. 自由软件。

我所知道的选择是:

  1. 访问.mdb文件(当前情况)。
  2. SQLite。
  3. SQL Server CE.

是否有其他系统可以满足许多或所有所需特征?对于我正在考虑的系统,我应该了解哪些特定的"陷阱"?

好吧,"不能使用数据库服务器/引擎"使事情变得更加困难。"免费"也是如此。

我认为 Access 是您列表中唯一接近满足所有要求的东西。它不是免费的,但似乎你已经拥有了它,所以至少它不需要额外付费。

访问本质上是三种不同的捆绑产品。

  • 喷射数据库引擎
  • 用于查询、表单和报告的 RAD 环境
  • VBA 编程环境

如果仅使用数据库引擎,则使用 SQL Server CE 执行一些测试是有意义的。

切换到 SQLite 可能需要对应用程序代码进行额外的检查。SQLite 支持存储类,不支持数据类型。那是什么意思?这意味着SQLite允许这样做。

sqlite> create table foo (n integer);
sqlite> insert into foo values ('wibble');
sqlite> select n from foo;
wibble

HyperSQL是另一种可能性。仅支持 JDBC,可以在没有服务器组件的情况下运行。 (文档并没有立即清楚这一点。我认为切换到这个比切换到SQL Server CE需要更多的工作。

另请参阅H2和火鸟。

最新更新