그래서 내가 두 개의 테이블이 뷰에서 제약 조건을 확인 ?대안
체크 제약 조건은보기에서 허용되지 않습니다. SQL 서버를 2008
편집을 사용하여 :
이는 this question에 대한 후속 질문입니다.
비즈니스 규칙 :
같은 요청이 여러 사용자에게 전달할 수 있습니다. 따라서 ForwardedRequests 테이블의 Id 열.
사용자는 특정 RequestScheme에 대해 하나의 요청 만 수신 할 수 있습니다. 그래서 요청 테이블에 RequestSchemeId + ReceivedByUserId에 대한 UniqueKey 제약 조건을 만들었습니다.
전달 된 사용자가 다른 사용자의 동일한 구성표에서 전달 된 요청을 아직 갖고 있지 않은 경우에만 요청을 다른 사용자에게 전달할 수 있습니다. 마틴이 linked question에서 제안한 것처럼 두 테이블에서 뷰를 만들고 Requests.RequestSchemeId + ForwardedRequests.ForwardedToUserId에 고유 한 제약 조건을 추가했습니다.
이 질문에 대한 비즈니스 규칙은 요청의 수신자가 자신에게 전달할 수 없다는 것입니다.
왜 'WHERE Requests.ReceivedByUserId <> ForwardedRequests.ReceivedByUserId'를 사용하지 않습니까? – Kaf
@ 카프 - 그건 도움이되지 않습니다. [질문의 추가 컨텍스트는 여기에 있습니다] (http://stackoverflow.com/q/9749902/73226) –
@Martin 링크를 추가해 주셔서 감사합니다. – NVM