为什么我会选择在关系数据库中存储和操作XML?

Mat*_*och 12 xml rdbms

现代RDBMS支持XML列类型和功能,用于处理存储过程中的XML.从历史上看,我总是将层次结构数据(无论是OO对象还是XML)映射到关系表.鉴于XML的广泛数据库支持我应该改变我的方式吗?

seb*_*mez 5

如果你没有看到需要那么就不要改变!

有时您必须保留没有已知结构的数据,或者其结构非常不稳定.在这些情况下,只需将XML保存到现有表中,而不是创建表

  • 没有XML中的X代表什么?如果你想修复,你只需要使用一组表格和字段.定义良好很好,但定义可能会比推动数据库模式更改更频繁地更改. (2认同)

Mil*_*kov 5

我有一个很好的现实生活中的例子.我的一个客户经常收到来自供应商的XML文件,其中包含一些重要数据.它是深深嵌套的.他们需要将它与之前的XML文件进行比较,以查看更改的内容.如果没有数据库中的XML支持,我必须构建一个迭代XML节点并在关系数据库表中查找匹配项的工具.我可以使用一些XML-XML比较工具,但是一些检查涉及一些不是来自XML文件的其他数据,我需要将所有这些加在一起.好的,所有这些都没有那么大,但仍然 - 使用XML数据库,您可以获得开箱即用的功能.


tpo*_*wer 0

您可以将用户生成的 XML 存储在其中。

如果像 stackoverflow 这样的网站使用某种 XML 标记而不是 mark down,您可以将问题/答案以 XML 形式存储在数据库中。您可能会发现自己尝试解析此用户生成的 XML 以查找专有标签。