4

Webページで使用されるテキストを保存するための2つのソリューションを検討する割り当てを行っています。シナリオ:1つの講義に対して1つのWebページがあり、1つの主題に対して複数の講義があります。

最初の選択肢は通常のリレーショナルデータベースですが、これは問題ありません。

もう1つの選択肢は、2つの「通常の」属性を持つテーブルと1つはOracleのXmlTypeを持つテーブルです。このxmlファイルには、1つのサブジェクトのすべてのデータが保存されます。したがって、xmlファイルにはいくつかの講義のデータが含まれます。代替案#2には賛否両論が必要です。そして、なぜ私は#1の代わりに代替#2を使用することを検討する必要がありますか?

4

3 に答える 3

1

XML でデータを格納する唯一の理由は、XML でデータを受信し、それを「もの」の 1 つの連続したコンテナーとして扱いたい場合です。XML にクエリを実行することは、複雑な Oracle 関数をすべて使用して実行できるかどうかに関係なく、困難な場合があります。私はそれを行いましたが、パフォーマンスのペナルティは大雑把である可能性があり、インデックスを正しく取得するためにフープをジャンプする必要があります.

ちょっとした見方として、これについて Joel に言及します: Back to Basics - Joel on Software

于 2012-01-27T17:51:16.450 に答える
0

最初の代替案ではLOB、Web ページを格納する列にデータ型を使用する必要があります。を使用するVARCHAR2と、フォーマットが失われます。

XMLTYPE列の 2 番目の選択肢では、LOB/CLOBストレージを選択するか、オブジェクト リレーショナル テーブルとビューに分割することを選択できます。XMLTYPE外部ファイルには保存されません。

2 番目の方法では、XPath 式を使用して XML ドキュメントを検索し、XML タグにインデックスを付けることができます。したがって、これは最初の選択肢よりも強力です。

于 2011-12-05T22:02:06.527 に答える
0

私が考えることができるいくつかの理由(私の頭の上から):

  1. データが本質的にリレーショナルではなく、むしろ階層的で不規則である場合、XML は、データを表形式の構造に強制しようとするよりも適切なストレージ オプションである可能性があります。

  2. データを XML として保存する場合は、XHMTL に変換して表示する方が簡単な場合があります。

  3. XML 形式を使用するオーサリング システムで作成されたデータを編集する必要がある場合は、データを XML として保存および使用することで、かなりの量のデータ変換を節約できます。

ただし、各レクチャーがアプリケーションの個別の「ページ」であることを考えると、すべてのレクチャーを 1 つの XML フラグメントに格納するよりも、各レクチャーを個別の XML「バケット」に分割する方が理にかなっているように思えます。

于 2012-01-27T18:01:40.883 に答える