복붙노트

[SQL] 때 데이터베이스 트리거의 나쁜입니까? [복제]

SQL

때 데이터베이스 트리거의 나쁜입니까? [복제]

데이터베이스 트리거에 대한 부정적인 정보의 많은있다, 그냥 나쁜 대 좋은 경우에 지역 사회의 걸릴 싶어.

해결법

  1. ==============================

    1.그들은 보안 또는 예를 들어 메타 데이터를 생성하기위한 로깅 같은 것들, 집계 등 테이블의 별도의 일회성 세트를 채우는 데 사용 때 나는 그들이있는 거 확인을 생각합니다.

    그들은 보안 또는 예를 들어 메타 데이터를 생성하기위한 로깅 같은 것들, 집계 등 테이블의 별도의 일회성 세트를 채우는 데 사용 때 나는 그들이있는 거 확인을 생각합니다.

    당신의 그들이 사악하고 다루기가 될 때, 당신의 "라이브"데이터를 변경하거나 비즈 정보 테이블에 "다시 반복"시작합니다. 또한 이것에 대한 전혀 필요하지 않습니다. 트리거가 저장 프로 시저 할 수없는 않는다는 것을 아무것도 없다.

    그들은 프로그래밍 언어에 GOTOs에 SQL의 악마의 동등 같은 느낌. 법률,하지만 절대적으로 필요한 경우가 아니면 피해야하고, 그들은 절대적으로 필요 절대 없습니다.

  2. ==============================

    2.다른 기능이 더 적합 할 때 사용하는 경우 데이터베이스 트리거는 나쁜.

    다른 기능이 더 적합 할 때 사용하는 경우 데이터베이스 트리거는 나쁜.

    사용 트리거를 시도하기 전에 고려해야 할 특징 :

    CHECK 제약 조건

    외래 키 제약 조건

    고유 인덱스 / 제약

    (지속 형) 계산 열의

    (인덱스) 조회수 (트리거가 집계를 업데이트하는 식으로 뭔가를 시도하는 경우, 말)

    저장 프로 시저 (직접 테이블 액세스 금지 할 수있는 경우)

    그 시점 후, 트리거는 적절하게 "나쁜"없이 사용할 수 있습니다. 트리거는 항상 작은 풋 프린트를 갖도록 설계되어야한다.

  3. ==============================

    3.있는 거 "마법"그들은 때문에. 그들은 매우 보이지 않는 그들은 많은 일을 할 수 있습니다.

    있는 거 "마법"그들은 때문에. 그들은 매우 보이지 않는 그들은 많은 일을 할 수 있습니다.

    나는 좋은 개발자는 단지 그들을 찾기 위해 생각하지 않았기 때문에 트리거가 관련된 문제를 추적하려고 많은 시간을 보았다. 또한, 그들은 아주 드물게 필요하지 않습니다.

  4. ==============================

    4.다음은 필요에 따라 스스로 알아내는 데 도움이해야 할 몇 가지 기사입니다.

    다음은 필요에 따라 스스로 알아내는 데 도움이해야 할 몇 가지 기사입니다.

    즉, 트리거 복잡한 DML이 수행되어야하는 대량의 데이터의 처리에 유용하다. 그렇지 않은 경우, 귀하의 질문에 대답하기 위해, 당신은 트리거가 나쁜 경우에 따라 답을 얻었다.

  5. from https://stackoverflow.com/questions/3048340/when-are-database-triggers-bad by cc-by-sa and MIT license