2010-05-13 2 views
1

나는 네 개의 테이블 관계 문제가 있습니까?

 
Tag=>id,tag_name 

Image=>Id,Image_name 

TagImage=>Id,tag_id,Image_id 


ImageStudent=id,Image_id,student_id 

이 그리고 학생 ID와 태그 이름을 사용하여 기록을 찾고 싶어요. 어떤 관계를 사용합니까?

+5

날짜를 설정 한 다음 시작하는 방법부터 살펴 보겠습니다. –

+0

찾으려는 레코드는 무엇입니까? 이미지 레코드? JOIN을 사용하여 필요한 레코드를 얻는 방법을 묻고 있습니까? 또한 TagImage 테이블이 실제로 필요합니까? – Abs

+1

모델 연결은'Tag HABTM Image'와'Student HABTM Image'입니다 (Student 모델은 제공되지 않지만 거기에 있어야합니다). 'TagImage'와'ImageStudent'는 Cake의 ORM에서 HABTM 관계를 생성하는 "마술"모델입니다 :'Tag hasMany TagImage' /'TagImage belongsTo Tag'와'Image hasMany TagImage /'TagImage belongsTo Image'. –

답변

0

이와 같은 쿼리와 함께 UNION을 사용하는 것이 더 좋을 수도 있습니다. 여기서는 필요한 조인이 있습니다.

 

SELECT Image.* FROM Image 
INNER JOIN ImageStudent ON Image.Id = ImageStudent.Image_id 
LEFT OUTER JOIN TagImage ON Image.Id = TagImage.Image_id 
INNER JOIN Tag ON TagImage.Id = Tag.Id 
WHERE Tag.tag_name = 'foo' AND ImageStudent.student_id = 42; 
 
+0

모든 것이 완벽하게 좋습니까? 감사합니다 참조 무결성의 세부 정보를 알려주시겠습니까? 그게 무엇입니까? – Dgo

+0

나는 당신의 대답 선생님의 모델 도움을 만듭니다. 그러나 작동하지 않습니다!! HABTM 관계가 모델에 어떻게 적용되는지 자세히 설명해주십시오 ... plz – Dgo

+0

당신은 당신의 질문에 더욱 자세하게 대답해야합니다. , 그것은 당신의 숙제처럼 내가 – mmattax