[解決済み] テーブルの代わりにビューを使用するタイミングは?
2022-05-14 23:52:34
質問
実際のところ、どのような場合に実際のテーブルよりもビューを使用すべきなのでしょうか?これはどのような利益をもたらすと期待すべきでしょうか。
全体として、テーブルの上にビューを使用する利点は何ですか?そもそも、ビューが見えるようにテーブルを設計すべきではないのでしょうか?
どのように解決するのですか?
ああ、多くの違いを考慮する必要があります。
選択するためのビュー。
- ビューはテーブルに対する抽象化を提供します。基礎となるスキーマを変更することなく、ビューで簡単にフィールドを追加/削除できます。
- ビューは、複雑な結合を簡単にモデル化することができます。
- Views は、データベース固有のものを隠すことができます。例えば、Oracles の SYS_CONTEXT 関数やその他多くのものを使用して、いくつかのチェックを行う必要がある場合などです。
- 実際のテーブルではなく、ビュー上で直接GRANTSを簡単に管理することができます。特定のユーザーがビューにのみアクセスできることが分かっている場合、管理が容易になります。
- ビューは後方互換性を保つのに役立ちます。基礎となるスキーマを変更することができますが、ビューは特定のクライアントからそれらの事実を隠すことができます。
挿入/更新のためのビュー。
- Oracle の "WITH CHECK OPTION" 節などの機能をビューで直接使用することで、ビューのセキュリティ問題を処理することができます。
欠点
- 関係(主キー、外部キー)の情報が失われる
- ビューはその基礎となる結合を隠すので、ビューを挿入/更新できるかどうかは明らかではありません。
関連
-
[解決済み] ストアドプロシージャ 'dbo.aspnet_CheckSchemaVersion' が見つかりませんでした。
-
[解決済み] SQLテーブルで重複する値を検索する
-
[解決済み] INNER JOINよりもCROSS APPLYを使用すべきなのはどのような場合ですか?
-
[解決済み] 最初の行への結合方法
-
[解決済み] 各グループの上位1行を取得
-
[解決済み] SQLiteデータベースで、一度に複数行を挿入することは可能ですか?
-
[解決済み] SQLite - UPSERT *not* INSERT or REPLACE
-
[解決済み] T-SQL文の接頭辞Nの意味と使うべきタイミングは?
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み】Oracleクエリが順序付け後に返す行数を制限するにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
plsql-stored-procedure ORA-06550 エラー処理
-
MHAの高可用性構成とフェイルオーバー
-
org.postgresql.util.PSQLException: ERROR: リレーション "userinfo" の列 "loginid" が存在しません。
-
SQL-初心者のためのベスト入門SQLクエリ I
-
[解決済み] SQL Serverで実行中の合計を計算する
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] SQL JOIN - WHERE句とON句の比較
-
[解決済み] DISTINCTでCOUNT(*)を選択する
-
[解決済み] Postgres でサブクエリを使用してテーブルの行を更新する
-
[解決済み】なぜデータベースにViewを作成するのですか?