我正在做一项任务,我将考虑两种解决方案来存储网页中使用的文字。 场景:一个讲座有一个网页,一个主题有几个讲座。
第一种选择是普通的关系数据库,这个可以。
另一种选择是具有两个“普通”属性的表,一个具有Oracle的XmlType。在此xml文件中,将保存一个主题的所有数据。因此xml文件将包含几个讲座的数据。 替代#2需要一些优点和缺点。 为什么我应该考虑使用替代#2而不是#1 ??
答案 0 :(得分:0)
在您的第一个替代方案中,您必须为存储网页的列使用LOB
数据类型。如果您使用VARCHAR2
,则会丢失格式。
在XMLTYPE
列的第二个备选项中,您可以选择LOB/CLOB
存储,也可以选择将其分解为对象关系表和视图。 XMLTYPE
未存储在外部文件中。
第二种方法是使您能够使用XPath表达式搜索XML文档并索引XML标记。所以这比第一种选择更强大。
答案 1 :(得分:0)
在XML中存储数据的唯一原因是,如果您正在接收XML格式的数据,并希望将其视为“东西”的一个连续容器。尝试查询XML有时是一项挑战,无论是否有能力使用所有精美的Oracle功能。我已经完成了,但是性能处罚可能很粗糙,或者你必须通过箍来使索引正确。
从一点看来,我将在这个问题上提到乔尔:Back to Basics - Joel on Software
答案 2 :(得分:0)
我能想到的几个原因(在我的脑海中):
如果数据本质上不是关系数据,而是层次结构和不规则数据,那么XML可能比尝试将数据强制转换为表格结构更合适。
如果您将数据存储为XML,则可能更容易将其转换为XHMTL以供显示。
如果数据源自并且需要在使用XML格式的创作系统中进行编辑,则可以通过以XML格式存储和使用数据来节省大量数据转换。
鉴于每个讲座都是应用程序中的一个单独的“页面”,我似乎更有意义的是将每个讲座拆分成一个单独的XML“桶”,而不是将它们全部存储在一个XML片段中。 / p>