2011-05-02 13 views
1

我正在建模一個社交網絡樣式的網站,人們可以在他們的聯繫人列表中擁有其他人,我想將這種關係建模爲同一個表格上的HABTM關係用戶,但根據http://book.cakephp.org/view/1044/hasAndBelongsToMany-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 

請幫幫忙,我該怎麼避免重複?

回答

2

對於引用同一個表的HABTM關係,您需要更改外鍵的名稱。定義users_users,有三個字段:id,user_idfriend_id

在用戶模式,建立了關係,分配一個明確的外鍵和associationForeignKey:

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

是的,它幫助,謝謝 – user648518 2011-05-03 18:51:13

+0

http://book.cakephp.org/view/1046/Multiple -relations到了 - 同型號 – user648518 2011-05-03 18:51:20