4

我正在做一个任务,我要考虑两种存储网页中使用的文本的解决方案。场景:一讲一个网页,一门课多讲。

第一种选择是普通的关系数据库,这个没问题。

另一种选择是具有两个“正常”属性和一个具有 Oracle 的 XmlType 的表。在此 xml 文件中,将保存一个主题的所有数据。所以 xml 文件将包含几个讲座的数据。我需要一些替代#2的优点和缺点。为什么我应该考虑使用替代#2而不是#1?

4

3 回答 3

1

将数据存储在 XML 中的唯一原因是,如果您正在接收 XML 中的数据并希望将其视为一个连续的“东西”容器。尝试查询 XML 有时是一项挑战,无论是否能够使用所有精美的 Oracle 函数来查询。我已经做到了,但是性能损失可能很严重,或者您必须跳过箍才能使索引正确。

从一个小角度来看,我将在这篇文章中参考 Joel:Back to Basics - Joel on Software

于 2012-01-27T17:51:16.450 回答
0

在您的第一个替代方案中,您必须为LOB存储网页的列使用数据类型。如果您使用VARCHAR2,您将失去格式。

XMLTYPE列的第二种选择中,您可以选择LOB/CLOB存储,也可以选择将其分解为对象关系表和视图。XMLTYPE不存储在外部文件中。

第二种选择使您能够使用 XPath 表达式搜索 XML 文档并索引 XML 标记。所以这比第一种选择更强大。

于 2011-12-05T22:02:06.527 回答
0

我能想到的几个原因(在我脑海中):

  1. 如果数据本质上不是关系数据,而是分层和不规则的,那么 XML 可能是比试图将数据强制转换为表格结构更合适的存储选项。

  2. 如果您将数据存储为 XML,则将其转换为 XHMTL 进行显示可能会更容易。

  3. 如果数据源自并需要在使用 XML 格式的创作系统中进行编辑,您可以通过将其存储为 XML 并将其使用为自己节省大量的数据转换。

然而,鉴于每个讲座在您的应用程序中都是一个单独的“页面”,对我来说,将每个讲座分成一个单独的 XML“桶”而不是将它们全部存储在一个 XML 片段中似乎更有意义。

于 2012-01-27T18:01:40.883 回答