1

正規化されたデータベースのマテリアライズドビューを定義するためのDDLスクリプトを生成するスクリプトがあります。一部のテーブルには、特定のデータベースユーザーを指す「所有者」のような列があり、現在のデータベースユーザーが作成したテーブルの行のみを表示するビューを作成できます。このような見解は、セキュリティと利便性の両方の観点から有益な場合があります。たとえば、自分自身の多肢選択式クイズの結果のみを表示します。

ほんの一握りのテーブルを除けば、誰かがそのような見方を求めていると想像できるテーブルがたくさんありますが、具体的なユースケースは考えられません。ただし、すべてのユースケースを常に予測できるとは限らないため、このような一般的な機能が役立つ場合があると思います。

私の質問は、これらのパーソナライズされたビューのうち、自動生成する必要があるのはいくつですか?数百のテーブルの場合、これにより、構築、テスト、およびベンチマークのプロセスにかなりの時間が追加されますが、自動化されています。決して使用されない可能性のある追加機能の側で、または要求された/有用であることがわかっているビューのみを使用できるようにする側で誤りを犯しますか?

4

1 に答える 1

2

これは自問するのに良い質問です。一般性は (一般的には;-) 良いことですが、過度に一般化すると、組み合わせ爆発に陥る可能性があります。ユーザーが DDL を使用しようとしたときに、必要な DDL のビットが「ジャスト イン タイム」に生成されるように手配できますか (もちろん、既に有用であることが証明されているビットの「キャッシュ」を保持します)。

それが不可能な場合は、「潜在的に有用なビュー」がテーブルと列の数で指数関数的に増加する可能性を考慮して、私はしぶしぶ「有用/望ましいとわかっているものだけを作成する」戦略を選択します(そして作成するように努力しますユーザーが何かを追加する必要があるときに私に知らせるのは非常に簡単です...)。

于 2009-05-26T15:16:19.000 に答える