2010-12-09 2 views
0

필드에 저장된 키를 사용하여 여러 번 자체 모델에 연결하려고합니다. 좀 더 구체적으로이 일부 행 내 테이블의 예입니다 선언 : 항목 3 모두 서로 연관되어에 ITEM1라는 이름이 데이터 항목에 있지만 item0 또는에 따라는 cakephp의 필드를 사용하여 자체 모델을 연결합니다.

id   name   association_id 
------------------------------------------------------------------ 
33   item0   1111 
34   item1   2222 
35   item2   2222 
36   item3   2222 
37   item4   NULL 

item4. 문제는 CakePHP에서이 연결을 구현하는 방법을 모른다는 것입니다. 그것은 hasMany 여야합니다. 그러나 동일한 필드 (association_id)를 사용하여 단어를 연결할 수 있습니까? id 인 기본 키를 가리키지 않습니다. 두 개 이상의 항목을 연결해야하는 경우이 association_id가 즉시 생성됩니다.

미리 감사드립니다.

답변

0

테이블을 정상화해야합니다. 그렇게하기 위해서는, 당신과 같이이 테이블을 분할해야 할 것 : 다음과 같이

associations: 
id | name 

items: 
id | name | association_id 

모델의 관계는 다음과 같습니다

Item belongsTo Association 
Association hasMany Item 

association_id이 테이블에 그냥 토큰이 다음 인 경우 추가 관계를 만들 필요가 없습니다. 그룹화 필드를 염두에두고 테이블을 쿼리하면됩니다.

희망 하시겠습니까?

+0

처음에는 내 선택 이었지만 연관성이 독립 실행 형 개체로 실제로 존재하지 않으며 항목이 서로 연결되어있을 때만 존재합니다. 이 ID는 요청시 생성되며 연결이없는 즉석에서 삭제됩니다. – mohamnag

+0

좋아요, 그룹화는 어떤 식 으로든 좋은 아이디어 인 것 같습니다! – mohamnag