0

私は 3 つのエンティティを持っています: ユーザー ロール 会社

通常、1 人のユーザーは 1 つの役割と多くの会社を持ちます。私はこれをうまく設定しました。

しかし、ユーザーが会社に応じた役割を持っている場合、どのように関係を設定すればよいでしょうか? 追加のエンティティ UserCompanyRole で試してみました。

ユーザー内:

/** @ORM\OneToMany(targetEntity="UserCompanyRole", mappedBy="user")*/
protected $userCompanyRoles;
public function getUserCompanyRoles() {
    return $this->userCompanyRoles;
}
public function addUserCompanyRole(UserCompanyRole $userCompanyRole) {
    $this->userCompanyRoles[] = $userCompanyRole;
}

役割も会社も同じ

UserCompanyRole:

/** @ORM\ManyToOne(targetEntity="User", inversedBy="userCompanyRoles")
 * @ORM\JoinColumn(  onDelete = "CASCADE" )
 */
private $user;
public function getUser() {
    return $this->user;
}
public function setUser(User $user = null) {
    $this->user = $user;
}

Role と Company の機能は同じです。

これは、クエリを作成するときに複雑になります。多分もっと良い方法がありますか?

4

1 に答える 1

0

ユーザーが複数の役割と会社を持つことができる場合、私はそう言います。会社では、役割に複数の従業員がいます。だから私はそれをcompanyRoleにします。

于 2013-01-17T08:38:54.043 に答える