2011-05-02 4 views
1

소셜 네트워킹 스타일 웹 사이트를 모델링 했으므로 연락처 목록에 다른 사람들이있을 수 있습니다. 같은 테이블 사용자의 HABTM 관계로이 관계를 모델링하고 싶었습니다. 나는 반복을 피할 수있는 방법,phpcake HABTM 사용자는 많은 친구가 있습니다. 표 이름 지정 규칙

CREATE TABLE IF NOT EXISTS `users_users` (
    `users_users.id` int(11) NOT NULL AUTO_INCREMENT, 
    `users_users.user_id` int(11) NOT NULL , 
     `users_users.user_id` int(11) NOT NULL , 
    PRIMARY KEY (`users_users.id`) 

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 

이 제발 도와주세요 :하지만 http://book.cakephp.org/view/1044/hasAndBelongsToMany-HABTM에 따라이 같은 테이블을 만들어 주어야한다?

답변

2

동일한 테이블을 참조하는 HABTM 관계의 경우 외래 키의 이름을 변경해야합니다. id, user_idfriend_id의 세 필드로 users_users을 정의하십시오. 귀하의 사용자 모델에서

는, 명시 적 외래 키와 associationForeignKey 할당 관계를 설정합니다, 그것은 도움이,

var $hasAndBelongsToMany = array(
    'Friend' => array(
     'joinTable' => 'users_users', 
     'className' => 'User', 
     'foreignKey' => 'user_id', 
     'associationForeignKey' => 'friend_id' 
    ) 
); 
+0

네 감사합니다 – user648518

+0

http://book.cakephp.org/view/1046/Multiple -relations-to-the-same-model – user648518

관련 문제