[解決済み] SQLビューを使用する良い理由は何ですか?
質問
SQL Server 2008 のバイブルを読んでいて、views のセクションをカバーしているところです。しかし、著者は本当に 目的 を説明していません。ビューの良い使い道とは何でしょうか?私のウェブサイトでそれらを使用する必要があり、それらの利点は何ですか?
どのように解決するには?
前の回答のどれにも書かれていないようなもう一つの用途は、テーブル構造の変更の容易な展開です。
例えば、あなたがテーブル (
T_OLD
) を廃止し、代わりに同じようなデータを持つ新しいテーブル (名前は
T_NEW
という名前) を使いますが、アクティブなユーザと非アクティブなユーザの両方のデータを持ち、1 つの特別なカラム
active
.
もし、あなたのシステムで
SELECT whatever FROM T_OLD WHERE whatever
を行うクエリが多数ある場合、ロールアウトのために2つの選択肢があります。
1) コールドターキー - DB を変更し、同時に、当該クエリを含む多数のコードを変更、テスト、およびリリースします。非常に難しく(あるいは調整することさえ)、非常にリスクが高い。悪いことです。
2)
漸進的
- を作成し、DBを変更する。
T_NEW
テーブルを作成し
T_OLD
テーブルを削除し、代わりに
VIEW
という
T_OLD
を模倣したもので
T_OLD
テーブルを 100%模倣します (例えば、ビュークエリは
SELECT all_fields_except_active FROM T_NEW WHERE active=1
).
これによって、現在
T_OLD
からコードを移行するための変更を行うことができます。
T_OLD
から
T_NEW
を自由に使える。
これは簡単な例で、もっと複雑なものもあります。
追伸:一方で、あなたはおそらく
ストアドプロシージャ API
からの直接のクエリではなく
T_OLD
からの直接のクエリではなく、ストアドプロシージャAPIを使用することをお勧めします。
関連
-
ERROR 1136 (21S01) を解決してください。列の数が Mysql の行 1 の値の数と一致しません。
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] 各グループの最後のレコードを取得する - MySQL
-
[解決済み] INNER JOINよりもCROSS APPLYを使用すべきなのはどのような場合ですか?
-
[解決済み] SQL Server における DateTime2 と DateTime の比較
-
[解決済み] SQL JOIN - WHERE句とON句の比較
-
[解決済み] SQL Server の "with (nolock)" とは何ですか?
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
executeQuery()ソリューションでデータ操作文を発行できない。
-
[解決済み] LINQでInclude()は何をするのですか?
-
[解決済み] 指定されたスキーマにテーブルが存在するかどうかを確認する方法
-
[解決済み] SQL Server : 列を行に変換する
-
[解決済み] SQL Serverにおける関数とストアドプロシージャの比較
-
[解決済み] SQLiteデータベースで、一度に複数行を挿入することは可能ですか?
-
[解決済み] SQL Server 2008を使用してIDENTITY_INSERTをオン/オフする方法は?
-
[解決済み] SQL Serverで、ある日付より大きいすべての日付を照会するにはどうすればよいですか?
-
[解決済み] Postgres でサブクエリを使用してテーブルの行を更新する
-
[解決済み】なぜデータベースにViewを作成するのですか?