我正在尝试设置一个模式来捕获Twitter用户及其关注者。
我有两张桌子。 Twitter用户和关注者。追随者有3个字段 - id,twitterUser,follower。
当Twitter用户被添加到表格中时,我还向追随者添加一行,以便与我可能感兴趣的其他用户一起加入。
但是,如果我使用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。有更聪明的方法吗?
答案 0 :(得分:0)
我建议使用ManyToMany自引用关系,如下所述: http://docs.doctrine-project.org/en/2.0.x/reference/association-mapping.html#many-to-many-self-referencing