2011-09-29 3 views
2

여기 웹 사이트와 다른 곳에서 트리거 사용에 대한 다양한 계정/의견을 읽었으며 여기에 중복 질문을 작성하지 않도록주의해야합니다.ISV 제품에 대해 트리거 사용을 피하기 위해 제시된 인수는 true입니까?

트리거 사용에 대한 추론의 상당 부분은 다른 사람들이 데이터와 상호 작용할 수있는 알려지지 않은 보이지 않는 부작용입니다. 많은 부서에서 여러 가지 응용 프로그램을 회사 데이터베이스에 걸어 놓을 수 있고 한 부서의 보이지 않는 비즈니스 규칙이 다른 사람에게 영향을 미치거나 구식이 될 수있는 트리거에 숨겨져서는 안되는 엔터프라이즈 시나리오에서 이것이 더 보편적 인 것으로 보입니다.

나는 회계 시스템을 통합 한 제품을 만들고 있습니다. 트랜잭션 (예 : 부분적으로 지불 된 인보이스, 전액 지불, 부분적으로 지불 승인 된 것 등)의 인보이스 총계 (gst 포함 및 제외) 상태와 같은 필드를 유지 관리하는 데 유용한 트리거 및 계산 필드의 조합을 찾고 있습니다.

저는 "비즈니스"논리는 비즈니스 로직이 아니라 데이터 무결성이 일부를 완화한다는 이유로 가장 일반적인 회계 규칙을 적용하기 위해 매우 구체적인 (원 자성) 트리거의 사용을 정당화했습니다. 향후 당사 또는 제 3 자에 대한보고 요구 사항은 이며, 당사 데이터베이스는 모든 유형의 "IT 지원"과 함께 야생에서 살아남 아야합니다. 평범한 사용자는 컴퓨터 시스템의 아키텍처 나 특성을 실제로 이해하지 못하고 컴퓨터를 켜거나 웹 서핑을 할 수있는 능력을 기반으로 컴퓨터 시스템을 도와 줄 사람을 순진하게 신뢰합니다.

알 수없는 "I.T. 전문가"또는 비즈니스 소유자의 조카가 테이블에서 몇 행을 수동으로 삭제하거나 지불 금액을 수동으로 변경해야하기 때문에 송장 상태가 깨지는 것을 원하지 않습니다.

일반적으로 허용되는 트리거 사용에 대한 혐오감이 기업 시나리오에서 더 많다고 생각하십니까? 아니면 제품과 함께 데이터베이스를 출하하는 ISV와 관련이 있습니다.

답변

1

에 달려 있습니다. 테이블에서 작업을 로깅하는 것과 같이 데이터베이스 응용 프로그램 또는 RDBMS에서 클라이언트 - 서버 또는 n- 티어 응용 프로그램을 사용할 때 엔터프라이즈와 ISV 시나리오 모두에서 유용한 트리거를 발견했습니다.

내가 거래를 사용하지 않는 것 또는 그들이 변함없이 영향을받을 수있는 앱에 문제를 복잡로 또한

(그들이있다거나 부작용을 간과 잊기 쉽기 때문에) 비즈니스 로직을 구현하는 EMC Greenplum과 같은 일부 MPP 데이터베이스는 사용자 정의 트리거를 허용하지 않으므로 앱을 수평 확장해야하는 경우 문제가 복잡해집니다.

당신이 말하는 일반적인 혐오감은 그들이 제시 할 수있는 문제점을 기반으로하며 기업용 소프트웨어를 작성하고 있거나 ISV 인 경우에 관계없이 유효한 문제입니다

관련 문제