我使用并编写使用各种模式以 XML 编写的技术文档。我开发了一个相当简单的 Windows 窗体应用程序,我们现在在办公室将其用作工作流系统。该程序可以签入、签出和移动验证过程。该程序使用一个通用的“data.xml”文件来读取和写入,从该文件中跟踪笔记、作者、状态和各种其他内容。
但是,目前应用程序指向共享驱动器上的文件夹结构,其中包含每个项目中的所有 xml 文件,以及保存程序项目数据的 data.xml 文件。因此,当有人签出文件时,应用程序只需将文件从一个文件夹移动到另一个文件夹(用户不可见),更新 data.xml 文件,然后更新 UI 中的 listViews。
这可以正常工作,除非当然有几个人在处理同一个项目,并且客户端应用程序尝试同时写入 data.xml 文件。
所以我想我想做的是将整个系统迁移到数据库。因此,它不是将 XML 文件存储在文件夹中,而是将它们存储在 SQL 等数据库中。现在我完全没有数据库经验,因此希望有一个指针可以让我朝着正确的方向前进。理想情况下,我需要能够查询数据库中的 xml 文档,所以我希望能够使用 Xquery,并在理想情况下对所有文件运行进程。例如,目前我可以在整个项目上运行 XSLT,因为它们只是放在一个文件夹中。
所以我的问题是,为了保留这种功能,我应该查看哪种类型的数据库?像 SQL 一样的关系,或者可能是 xml 数据库?
注意:每个 xml 文件最大为几百 Kbs。