我正在尝试建立一个模式来捕获 Twitter 用户及其关注者。
我有两张桌子。Twitter用户和关注者。Follower 有 3 个字段 - id、twitterUser、follower。
当一个 twitter 用户被添加到表中时,我还会在 Followers 中添加一行,以便将他们与我可能感兴趣的其他用户一起加入。
但是,如果我让 Symfony/Doctrine 使用以下内容构建表 -
/**
* @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。有更聪明的方法吗?