Twitter ユーザーとそのフォロワーをキャプチャするスキーマを設定しようとしています。
私は2つのテーブルを持っています。Twitter ユーザーとフォロワー。フォロワーには、id、twitterUser、フォロワーの 3 つのフィールドがあります。
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 を自分で作成することです。それを行うためのよりスマートな方法はありますか?