我们的数据库中有一个表,用于在其中一列中存储XML。 XML始终采用完全相同的格式,这些格式是通过Web服务响应接收的3种不同XML格式的集合。我们需要经常在此表(以及XML字段内)中查找信息。这是XML数据类型的不当使用吗?
我的建议是为每个不同的XML结构创建单独的表,因为我们只讨论3,每年可能有一个新表的增长率。 p>
答案 0 :(得分:2)
我认为最终这是一个偏好问题,但是我希望不在XML字段中存储数据的原因有以下几个原因:
在TSQL中针对XML编写查询的速度很慢。对于少量数据可能不会太糟糕,但你肯定会注意到它有相当数量的数据。
有时需要使用特殊逻辑来处理XML blob。如果将XML直接存储在SQL中,那么您会发现自己在整个过程中复制了该逻辑。我之前在一份工作中看到过这种情况,那些将XML编写到字段中的人早已不复存在,每个人都想知道如何使用它。有时元素存在,有时不存在等等。
与(2)类似,在我看来,它打破了数据库的纯度。就像许多人建议不要在一个字段中存储HTML一样,我建议不要存储原始XML。
但尽管有这三点......它可以工作,TSQL肯定支持对它的查询。
答案 1 :(得分:0)
你是否在阅读这个领域而不是写作?
您希望在最不常用的步骤或不涉及用户的步骤中进行转换。