2012-02-12 2 views
1

사용자가 Raven DB에서 두 개의 문서를 삭제하도록했습니다. 이 때문에 다른 문서에서 해당 문서가 참조 된 문제가 발생했습니다. 나는 Raven에 삭제를 묶는 번들이 있다는 것을 알고 있지만 다른 문서에서 참조하는 경우 삭제를 허용하지 않는 방법을 찾고있다. 이 작업을 수행하는 표준 RavenDB 방법이 있습니까? 또는 문서가 참조되었는지 확인하기 위해 모든 문서를 반복해야합니까?RavenDB 사용하지 않을 경우 삭제 허용하지 않음

답변

1

Bob, 불행히도 데이터베이스 자체는 문서 간의 관계가 무엇인지 모르기 때문에 불행히도 표준 방법이 없습니다.

따라서 사용자가이 문서를 삭제하지 못하게하려면 현재 문서를 참조하는 다른 문서가 있는지 확인해야합니다.

+0

감사합니다. Daniel. 내가 가지고있는 각 문서 유형에 대해 많은 별도의 쿼리를 수행해야하는지 알고 있습니까? 또는 삭제할 문서의 인스턴스를 반환 할 수있는 쿼리가 하나 있습니까? –

+0

죄송 합니다만이 질문을 이해할 수 없습니다. 설명해 주시겠습니까? –

+0

특정 문서 ID가 두 번 이상 존재하는지 확인하기 위해 * * 쿼리를 수행 할 수 있습니까? 둘 이상이 있으면 다른 문서에서 참조하는 것을 알고 있습니다. 그렇지 않으면 각 문서 유형에 대해 별도의 쿼리 (검색어 )를 수행하여 삭제하려는 문서를 참조하는지 확인해야합니다. –

1

Daniel이 말했듯이 RavenDB는 워드 프로세서 간의 연관성에 대해 알지 못하므로 상자에서 꺼낼 수 없습니다.

그러나 자신의 번들을 구현하고 delete trigger 기능을 사용하여 삭제를 거부/허용 할 수 있습니다.

이 경로로 이동하려면 Cascading Delete 번들이 구현 된 방법을 살펴보십시오. 당신은 그 반대 일을 할 필요가 있습니다.

+0

Ooooooh ... 그것은 개선 할 흥미로운 기회일지도 모릅니다. 나는 그것에 대해 조사해야 할 것이다. 감사! –

+0

삭제 트리거 링크가 끊어졌습니다. 당신은 더 나은 것을 가지고 있습니까? –

+0

죄송합니다. http://old.ravendb.net/documentation/triggers/read –

관련 문제