0

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 を自分で作成することです。それを行うためのよりスマートな方法はありますか?

4

1 に答える 1