2016-08-13 3 views
1

나는 모두 User, ProjectTask 사이에 다 대다 관계가있는 세 개의 엔터티가 있습니다. 세 테이블의 ID 만 포함하는 하나의 테이블 collaborator에 세 개의 테이블을 조인하려고합니다.세 테이블을 조인 테이블에 조인

그러나 나는 어떻게 그들을 @JoinTable에 더할 수 있는지 이해할 수 없습니다. 어떻게 캐스케이드 유형을 관리 할 수 ​​있습니까?

도움을 주시면 감사하겠습니다. 감사합니다. P.S : 다른 아이디어가 있으면 환영합니다.

+0

당신이 가입 또는'collaborator'라는 테이블을 만들려면 dinamic 임시 테이블을 선택할 수 있습니다? –

+0

당신이 설명하는 것부터, 나는 사용자가 여러 프로젝트를 가질 수 있고 또한 프로젝트가 여러 사용자를 가질 수 있음을 이해합니다. 프로젝트와 작업간에 동일합니다. 그러나 결국, 사용자는 프로젝트를 통해 작업과 연결됩니다. 그렇지 않습니까? 나는 다른 중간 테이블을 갖는 것이 당신의 디자인에 부족하다고 생각합니다. 순수한 유지 관리 문제를 원한다면 조인 쿼리를 반복 작성하는 것을 피할 수있는 DB 뷰를 구현하는 것이 좋습니다. –

+0

@ZaidMirza, 'collaborator'는 조인 테이블의 이름입니다. –

답변

3

당신은

select * from (
    select user.id, Project.id, Task.id 
    inner join Project on user.join_key = Project.join_key 
    inner join Task on task.join_key = = Project.join_key 
) collaborator 
+0

그것은 나를 위해 충분히 간단합니다. 감사합니다. –