Java 文档管理系统-数据库设计
我正在用Java编写自己的程序(可用的程序不能满足我的需要) 文件应采用合格的DublinCore元数据标准进行描述。在我看来,最简单的方法是将键值对打包到带有XML表示的RDF模型中 要存储所有文档的元数据,我有两个想法(文档文件将存储在文件系统中):Java 文档管理系统-数据库设计,java,database-design,document-management,Java,Database Design,Document Management,我正在用Java编写自己的程序(可用的程序不能满足我的需要) 文件应采用合格的DublinCore元数据标准进行描述。在我看来,最简单的方法是将键值对打包到带有XML表示的RDF模型中 要存储所有文档的元数据,我有两个想法(文档文件将存储在文件系统中): 将所有文档的所有元数据存储在单个XML文件中 为每个文档创建一个XML文件,并将其存储在文件系统或RDBMS(如Java的H2数据库引擎)中,键值数据库无法解决此问题,因为一个文档的键不是唯一的 由于(许多)文件相互关联,第一种方法可能更好地分
Stefan我会研究一个像Coach DB这样的无SQL文档解决方案,看看它是否能帮助您
我不喜欢文件系统解决方案;没有任何抽象方法可以帮助您实现这一点。如果您总是访问所有文档,那么您的任何方法都不会比其他方法慢。但我建议采用第二种方法。在分析数据时,您需要读取所有文档,因此如果它们位于不同的文件或一个文件中,则没有区别…我不知道您的分析是如何工作的,但如果您需要内存中的完整图形来进行分析,则使用Variant 1(将所有文档的所有元数据存储在单个XML文件中),因为在这种情况下,方差2不会带来任何收益(只会带来额外的工作量) 已添加 如果变体2的额外工作不多,那么我建议使用变体2,因为它可以更灵活
- 您可以通过只编写一个小的xml文件而不是一个大的xml文件来更新或添加文档元数据
- 这取决于您使用的xml解析器,但在某些情况下,解析一些较小的xml文件比解析一个较大的xml文件更快(但这在很大程度上取决于数据量)
您可以在MongoDB中直接将文档存储为二进制文件,甚至可以以任何格式存储特定文件的相关元数据。它将能够存储文档,即使它们具有相同的名称,并且它将生成自己的唯一ID 顺便说一句:即使它不属于您的问题:请看一下(Java内容存储库)实现,如。您可以使用它来存储您的文档,也可以存储您的元数据。感谢您的链接,我以前不知道这个规范,但它似乎非常有趣。因为我喜欢DOM解析器,所以我将使用第二个avariant,谢谢,我不想将文档文件存储在数据库中,因为我希望能够在没有任何中间件的情况下访问它们。