2010-06-11 4 views
4

예 : 저는 Department와 Employee가 있습니다. 부서는 많은 직원들과 무효화 관계를 가지며, 직원은 한 부서와 반대의 관계를 가지고 있습니다.내 관계 삭제 규칙을 Nullify로 설정하면 역관계도 삭제됩니까?

이제 Employee와의 관계를 제거합니다. 따라서 마케팅 부서가 Joe Stevens와 더 이상 연계되어 있지 않다고 말하십시오.

1) Joe Stevens는 그의 부서에 질문 할 때 마케팅 부서에 여전히 연결되어 있습니까? 아니면 코어 데이터가 자동으로 이것을 처리하고 "무효화"합니까?

2) 직원 측에서 어떤 삭제 규칙을 지정해야합니까? 그것이 캐스케이드라고 가정 해 봅시다. Department는 Employee와의 관계를 제거했습니다. 이 경우 Employee의 삭제 규칙은 관련이 없다고 생각합니다. 맞습니까?

답변

13

삭제 규칙은 규칙 자체를 보유한 객체가 삭제 될 때 관계의 반대쪽 끝에있는 객체에 어떤 일이 일어나는지를 제어합니다.

그래서 :

A<-(cascade)->>B 
B<<-(nullify)->A 

삭제 A는 단일 한 B 단순히 그래서, 삭제 규칙은 특정 B.

잊어 원인 삭제, 그러나 모든 관련 B의 삭제를 발생 대상 개체가 삭제 규칙의 전체 지점이기 때문에 대상과 항상 관련이 있습니다. 객체가 여러 개의 관계가있는 경우 특히 그렇습니다.

A<-(cascade)->>B 
B<<-(nullify)->A 
C<--(cascade,required)-->>B 

C 객체는 A가 ​​원하는 것과 관계없이 B 객체의 연속 삭제를 차단합니다. (이 경우에는 A가 무효화됩니다.)

실제 프로그래밍의 관점에서 삭제 규칙을 생각해서는 안되며 실제로 모델링하려는 실제 시스템의 관점에서 생각하면 안됩니다. 실제 시스템의 관계에 대해 생각한 다음 해당 규칙을 모방하는 삭제 규칙을 설정하십시오. 이 경우 회사의 실제 조직 규칙을 모방합니다.

+1

위대한 설명. Apple Docs로 가야 함) – dontWatchMyProfile

+0

TechZen의 답변을 사용하면 B는 삭제할 수 없으므로 (즉 C가 필요함), A가 B에 대해 잊어 버리고 A가 삭제된다는 의미입니까? –

관련 문제