2016-12-17 1 views
0

나는 SQL을 배우고있다. PostgreSQL을 사용하면 테이블의 일부 선택 컬럼에 대한 가시성이있는 경우 '보기'를 통해 테이블을 업데이트 할 수 있습니다. 반면에, SQLite는 이것을 지원하지 않습니다 (나에게 더 의미가 있습니다).SQL에서보기를 업데이트하는 것이 좋습니다.

허용되는 경우에도보기를 통해 테이블을 업데이트하는 것이 좋습니다.

+0

[INSTEAD OF 트리거] (http://www.sqlite.org/lang_createtrigger.html)를 쓰면 SQLite에서보기를 업데이트 할 수 있습니다. –

답변

1

이 질문은 의견의 문제 일 수 있습니다. 그러나보기를 통해 데이터를 업데이트하는 것은 예외가 있지만 일반적으로은 좋지 않습니다.

뷰를 정의하는 주된 이유 중 하나는 기본 데이터 구조의 변경에서 사용자를 분리하는 것입니다. 모든 뷰가 업데이트 가능하지는 않으므로 뷰의 정의로 변경하면 결과 집합이 아니라 코드가 무효화 될 수 있습니다.

일부 데이터베이스에서는보기에서 트리거를 사용하여이 문제를 해결할 수 있습니다.

"일반적인"사고라고 덧붙여 야합니다. 보기가 필요한 또 다른 이유는 액세스 제어 및 보안입니다. 예를 들어, 일부 사용자는 일부 테이블에서 일부 열을 볼 수 없습니다. 뷰에 액세스 할 수 있지만 기본 테이블은 액세스 할 수 없습니다. 이 경우보기 업데이트가 조금 더 합리적입니다.

나는 사용자가 데이터를 직접 업데이트하는 것을 좋아하지 않는다는 것을 지적해야한다. 필자가 선호하는 것은 저장 프로 시저를 통해 이러한 업데이트를 수행하는 것이므로 데이터 모델, 감사 및 사용자 액세스를 훨씬 효과적으로 제어 할 수 있습니다.

관련 문제