Doctrine2与多个表的多对多关系

时间:2012-06-22 13:59:13

标签: symfony doctrine-orm many-to-many

我正在使用Symfony2和Doctrine2来构建应用程序。该应用程序的一部分涉及地址。我有一个表“地址”和三个表连接到它与多对多关系(员工,客户,供应商)。我用一个连接表“contact_address”设置了它。

如何创建具有多对多关系的实体?在我的员工,客户和供应商实体中

/**
 * @var Addressess
 *
 * @ORM\ManyToMany(targetEntity="Address", mappedBy="contacts")
 */
private $addresses;

我在地址实体中添加了什么?

    /**
     * @var Contacts
     *
     * @ORM\ManyToMany(targetEntity="Employee", inversedBy="id")
     * @ORM\JoinTable(name="contact_address",
     *   joinColumns={
     *      @ORM\JoinColumn(name="addressID", referencedColumnName="addressID")
     *   },
     *   inverseJoinColumns={
     *      @ORM\JoinColumn(name="employeeID", referencedColumnName="employeeID")
     *   }
     * )
     */
    private $contacts;

是我的第一个想法,但是对客户和供应商有什么看法?

1 个答案:

答案 0 :(得分:2)

地址是否可以一次链接到多个人?这对我来说似乎有点奇怪......

在任何情况下,我都会建议您与地址建立一对多的实体联系,以及联系人和员工,联系人和客户以及联系人和供应商之间的一对一联系,或者让员工,客户和供应商继承联系。