私はSQLを学んでいます。 PostgreSQLでは、テーブルのいくつかの選択されたカラムの可視性がある場合、 'view'を通してテーブルを更新することができます。一方、SQLiteはこれをサポートしていません(これは私にとって意味があります)。SQLのビューを更新するのが良い方法ですか?
ビューが許可されていてもビューを更新するのがよい方法かどうか疑問ですか?
私はSQLを学んでいます。 PostgreSQLでは、テーブルのいくつかの選択されたカラムの可視性がある場合、 'view'を通してテーブルを更新することができます。一方、SQLiteはこれをサポートしていません(これは私にとって意味があります)。SQLのビューを更新するのが良い方法ですか?
ビューが許可されていてもビューを更新するのがよい方法かどうか疑問ですか?
この質問は意見の問題かもしれませんが、私は、ビューを介してデータを更新することは一般的には例外ではありませんが、良い練習ではないと言います。
ビューを定義する主な理由の1つは、基礎となるデータ構造の変更からユーザーを分離することです。すべてのビューが更新可能であるわけではないため、ビューの定義(ただし結果セットではない)を変更するとコードが無効になる可能性があります。
一部のデータベースでは、ビューのトリガーを使用してこの問題を回避することができます。
私はこれを「一般的な」思考にするべきです。ビューを持つ別の理由は、アクセス制御とセキュリティのためです。たとえば、一部のユーザーは、一部の表で一部の列を表示できない場合があります。ビューにはアクセスできますが、基になるテーブルにはアクセスできません。この場合、ビューの更新は少し妥当です。
私が指摘しておかなければならないのは、ユーザーがデータをまったく更新することを本当にファンにはしていないということです。私の好みは、ストアード・プロシージャーを介してそのような更新を行うことです。そのため、データ・モデル、監査、およびユーザー・アクセスの制御がはるかに優れています。
[INSTEAD OFトリガー](http://www.sqlite.org/lang_createtrigger.html)を記述すると、SQLiteではビューを更新できます。 –