트위터 사용자와 팔로어를 캡처하는 스키마를 설정하려고합니다.Symfony Doctrine - 외래 키가없는 조인
두 개의 테이블이 있습니다. Twitter 사용자 및 추종자. Follower에는 id, twitterUser, follower의 3 개의 필드가 있습니다.
는 트위터 사용자가 테이블에 추가 될 때, 나는 또한에 관심이있을 수있는 다른 사용자와 가입 호응에 행을 추가합니다.
을 그러나, 나는 심포니/교리가 테이블을 구축 할 수있는 경우 내가 원하는하지 않는 한, 다음과 같은 -
그것은 내가 원하지 않는follower
에 대한 외래 키를 만드는 방법에 대한 주장
/**
* @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;
...
같은 것을 사용하여 내 항상 작동 조인 수 있도록 모든 트위터 사용자를 얻어야합니다.
내가 할 수있는 유일한 방법은 주석을 제거하고 조인을위한 SQL을 직접 작성하는 것입니다. 그것을하는 더 똑똑한 방법이 있습니까?
예, 해봤 자기 참조를하지만, 외래 키는 여전히 생성됩니다. 예제에서 -'ALTER TABLE 친구들 외래 키 추가 (user_id) 참고 사용자 (id); ALTER TABLE friends 외부 키 추가 (friend_user_id) 참고 사용자 (id); – wkstar