我使用各种模式编写和使用XML编写的技术文档。我开发了一个相当简单的Windows Forms应用程序,我们现在在办公室用作工作流系统。该程序可以签入,签出并移动验证过程。该程序使用通用的'data.xml'文件来读取和写入,从中记录笔记,作者,状态和其他各种事物。我应该使用关系数据库来存储我的XML文档
但是,此时应用程序指向共享驱动器上的文件夹结构,其中包含每个项目中的所有xml文件以及包含程序项目数据的data.xml文件。所以当有人检出一个文件时,应用程序只是简单地将文件从一个文件夹移动到另一个文件夹(用户不可见),更新data.xml文件,他们更新UI中的listViews。
这工作正常,除非当然有几个人正在同一个项目,并且客户端应用程序尝试同时写入data.xml文件。
所以我想我想要做的是将整个系统迁移到数据库。因此,不是将XML文件存储在文件夹中,而是将它们存储在SQL等数据库中。现在我完全没有数据库的经验,所以希望有一个指针能把我朝正确的方向发展。理想情况下,我需要能够查询数据库中的xml文档,所以我希望能够使用Xquery,并理想地在所有文件上运行进程。例如,目前我可以在整个项目的客户端上运行XSLT,他们只是坐在一个文件夹中。
所以我的问题是,我应该看什么类型的数据库以保留这种功能?像SQL这样的关系,或者一个xml数据库?
注意:xml文件最多为每个数百Kbs。
感谢您的评论。 xml或至少xml标签中的内容在文档和文档之间是非常不同的。我最终希望以任何方式将它全部存入数据库,所以我想知道建议哪种方式。谢谢。 – Daedalus 2013-04-24 11:40:13