sql-server - 在 SQL Server 中存储具有标准结构的 XML 是对 XML 数据类型的错误使用吗?

标签 sql-server xml database

我们的数据库中有一个表,其中一列存储 XML。 XML 始终采用与通过 Web 服务响应接收的一组 3 种不同 XML 格式完全相同的格式。我们需要非常频繁地查找此表(以及 XML 字段内部)中的信息。这是对 XML 数据类型的错误使用吗?

我的建议是为每个不同的 XML 结构创建单独的表,因为我们只谈论 3 个,并且每年可能有一个新表的增长率。

最佳答案

我想这最终是一个偏好问题,但这里有一些我更喜欢在 XML 字段中存储数据的原因:

  1. 在 TSQL 中针对 XML 编写查询很慢。对于少量数据来说可能还不错,但如果数据量很大,您肯定会注意到它。

  2. 有时需要特殊的逻辑来处理 XML blob。如果您将 XML 直接存储在 SQL 中,那么您会发现自己在到处复制该逻辑。我以前在一份工作中看到过这种情况,在该工作中,将 XML 写入字段的人早已不在,每个人都想知道如何使用它。有时有元素,有时没有,等等。

  3. 与(2)类似,在我看来它破坏了数据库的纯度。就像许多人建议不要在字段中存储 HTML 一样,我建议不要存储原始 XML。

但尽管有这三点......它可以工作并且 TSQL 绝对支持针对它的查询。

关于sql-server - 在 SQL Server 中存储具有标准结构的 XML 是对 XML 数据类型的错误使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17974959/

相关文章:

sql-server - 将 XML 数据转换为行和列

sql - 您可以从一个实例到另一个实例选择一张表吗?

javascript - 需要对 xml 显示进行一些改进

Mysql优化-每个用户存储大量数据

php - 从一个表中获取多行并存储到php Mysql中的另一个表

.net - Windows 应用程序使用什么数据库?

c# - 存储过程中EXISTS子句的参数

c# - SQL Server 生产版的行为与开发版不同。编码有问题!

xml - 按属性对 XML 进行排序和修改

php - Prestashop 1.6.0.9 - 循环中的 $product->save() 只需要 10 个产品