[SQL] 때 데이터베이스 트리거의 나쁜입니까? [복제]
SQL때 데이터베이스 트리거의 나쁜입니까? [복제]
데이터베이스 트리거에 대한 부정적인 정보의 많은있다, 그냥 나쁜 대 좋은 경우에 지역 사회의 걸릴 싶어.
해결법
-
==============================
1.그들은 보안 또는 예를 들어 메타 데이터를 생성하기위한 로깅 같은 것들, 집계 등 테이블의 별도의 일회성 세트를 채우는 데 사용 때 나는 그들이있는 거 확인을 생각합니다.
그들은 보안 또는 예를 들어 메타 데이터를 생성하기위한 로깅 같은 것들, 집계 등 테이블의 별도의 일회성 세트를 채우는 데 사용 때 나는 그들이있는 거 확인을 생각합니다.
당신의 그들이 사악하고 다루기가 될 때, 당신의 "라이브"데이터를 변경하거나 비즈 정보 테이블에 "다시 반복"시작합니다. 또한 이것에 대한 전혀 필요하지 않습니다. 트리거가 저장 프로 시저 할 수없는 않는다는 것을 아무것도 없다.
그들은 프로그래밍 언어에 GOTOs에 SQL의 악마의 동등 같은 느낌. 법률,하지만 절대적으로 필요한 경우가 아니면 피해야하고, 그들은 절대적으로 필요 절대 없습니다.
-
==============================
2.다른 기능이 더 적합 할 때 사용하는 경우 데이터베이스 트리거는 나쁜.
다른 기능이 더 적합 할 때 사용하는 경우 데이터베이스 트리거는 나쁜.
사용 트리거를 시도하기 전에 고려해야 할 특징 :
CHECK 제약 조건
외래 키 제약 조건
고유 인덱스 / 제약
(지속 형) 계산 열의
(인덱스) 조회수 (트리거가 집계를 업데이트하는 식으로 뭔가를 시도하는 경우, 말)
저장 프로 시저 (직접 테이블 액세스 금지 할 수있는 경우)
그 시점 후, 트리거는 적절하게 "나쁜"없이 사용할 수 있습니다. 트리거는 항상 작은 풋 프린트를 갖도록 설계되어야한다.
-
==============================
3.있는 거 "마법"그들은 때문에. 그들은 매우 보이지 않는 그들은 많은 일을 할 수 있습니다.
있는 거 "마법"그들은 때문에. 그들은 매우 보이지 않는 그들은 많은 일을 할 수 있습니다.
나는 좋은 개발자는 단지 그들을 찾기 위해 생각하지 않았기 때문에 트리거가 관련된 문제를 추적하려고 많은 시간을 보았다. 또한, 그들은 아주 드물게 필요하지 않습니다.
-
==============================
4.다음은 필요에 따라 스스로 알아내는 데 도움이해야 할 몇 가지 기사입니다.
다음은 필요에 따라 스스로 알아내는 데 도움이해야 할 몇 가지 기사입니다.
즉, 트리거 복잡한 DML이 수행되어야하는 대량의 데이터의 처리에 유용하다. 그렇지 않은 경우, 귀하의 질문에 대답하기 위해, 당신은 트리거가 나쁜 경우에 따라 답을 얻었다.
from https://stackoverflow.com/questions/3048340/when-are-database-triggers-bad by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] LINQ 조합 사용? (0) | 2020.07.06 |
---|---|
[SQL] 동적 SQL와 열 이름을 통해 루핑 (0) | 2020.07.06 |
[SQL] MySQL의 중첩 된 세트는 - 어떻게 노드의 부모를 찾는 방법은? (0) | 2020.07.06 |
[SQL] PostgreSQL의 행에 대한 열 헤더 전치 (0) | 2020.07.05 |
[SQL] TRY의 CATCH 안에 단일 문에서 여러 오류 메시지를 캡처 (0) | 2020.07.05 |