0
我試圖建立一個架構來捕獲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的加入自己。有沒有更聰明的方法來做到這一點?
是的,我已經試過自我參照,但仍產生外鍵。從示例 - 'ALTER TABLE friends添加外鍵(user_id)參考用戶(id); ALTER TABLE朋友ADD FOREIGN KEY(friend_user_id)REFERENCES User(id);' – wkstar