我们的数据库中有一个表,其中一列存储 XML。 XML 始终采用与通过 Web 服务响应接收的一组 3 种不同 XML 格式完全相同的格式。我们需要非常频繁地查找此表(以及 XML 字段内部)中的信息。这是对 XML 数据类型的错误使用吗?
我的建议是为每个不同的 XML 结构创建单独的表,因为我们只谈论 3 个,并且每年可能有一个新表的增长率。p>
最佳答案
我想这最终是一个偏好问题,但这里有一些我更喜欢不在 XML 字段中存储数据的原因:
在 TSQL 中针对 XML 编写查询很慢。对于少量数据来说可能还不错,但如果数据量很大,您肯定会注意到它。
有时需要特殊的逻辑来处理 XML blob。如果您将 XML 直接存储在 SQL 中,那么您会发现自己在到处复制该逻辑。我以前在一份工作中看到过这种情况,在该工作中,将 XML 写入字段的人早已不在,每个人都想知道如何使用它。有时有元素,有时没有,等等。
与(2)类似,在我看来它破坏了数据库的纯度。就像许多人建议不要在字段中存储 HTML 一样,我建议不要存储原始 XML。
但尽管有这三点......它可以工作并且 TSQL 绝对支持针对它的查询。
关于sql-server - 在 SQL Server 中存储具有标准结构的 XML 是对 XML 数据类型的错误使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17974959/