実際のテーブルではなくビューを実際に使用する必要があるのはいつですか? これによりどのような利点が期待できますか?
全体的に、テーブルではなくビューを使用する利点は何でしょうか? そもそも、ビューの外観に合わせてテーブルを設計するべきではないでしょうか?
ベストアンサー1
ああ、考慮すべき違いはたくさんあります
選択可能なビュー:
- ビューはテーブルを抽象化します。基礎となるスキーマを変更することなく、ビューでフィールドを簡単に追加/削除できます。
- ビューでは複雑な結合を簡単にモデル化できます。
- ビューはデータベース固有の情報を隠します。例えば、OracleのSYS_CONTEXT関数やその他の多くのものを使用していくつかのチェックを行う必要がある場合などです。
- GRANTS は、実際のテーブルではなく、ビューで直接簡単に管理できます。特定のユーザーがビューにのみアクセスできることがわかっている場合は、管理が簡単になります。
- ビューは下位互換性を保つのに役立ちます。基礎となるスキーマを変更することはできますが、ビューによってそれらの事実を特定のクライアントから隠すことができます。
挿入/更新のビュー:
- ビューのセキュリティ問題は、Oracleの「WITH CHECK OPTION」句などの機能をビュー内で直接使用することで対処できます。
欠点
- 関係に関する情報(主キー、外部キー)が失われます
- ビューは基礎となる結合を隠しているため、ビューを挿入/更新できるかどうかは明らかではありません。