Symfony的原则 - 不加入外键

问题描述:

我试图建立一个架构来捕获Twitter用户和他们的追随者。Symfony的原则 - 不加入外键

我有两个表。 TwitterUser和Follower。追随者有3个字段 - id,twitterUser,follower。

当Twitter用户是添加到表中,我还添加了一个行追随者与其他用户我可能有兴趣在加入他们的行列。

但是,如果我得到的Symfony /原则建立的表使用类似以下各项

/** 
* @ORM\Entity 
* @ORM\Table(name="follower") 
* @ORM\HasLifecycleCallbacks 
*/ 
class Follower 
{ 
    public function __construct() 
    { 
    } 

    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer") 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * @ORM\ManyToOne(targetEntity="TwitterUser", inversedBy="followers") 
    * @ORM\JoinColumn(name="user_id", referencedColumnName="id") 
    */ 
    protected $twitterUser; 

    /** 
    * @ORM\ManyToOne(targetEntity="TwitterUser", inversedBy="following") 
    * @ORM\JoinColumn(name="follower_id", referencedColumnName="id") 
    */ 
    protected $follower; 
... 

它坚持创造follower外键,我不想,因为我不希望有让所有Twitter用户,以确保我的联接总是工作。

我能想到这样做的唯一办法,就是去掉注释和创建SQL的加入自己。有没有更聪明的方法来做到这一点?

+0

是的,我已经试过自我参照,但仍产生外键。从示例 - 'ALTER TABLE friends添加外键(user_id)参考用户(id); ALTER TABLE朋友ADD FOREIGN KEY(friend_user_id)REFERENCES User(id);' – wkstar