ユーザーグループを管理するクラスを作成しています。グループには、ユーザーまたはユーザーのグループを含めることができます
そのような関係を処理する実装する symfony クラスが既にあるのではないかと思います。
私に思いついた最良の方法は、次のようなものです。
class Group
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @ORM\ManyToOne(targetEntity="User")
* @ORM\JoinColumn(name="coordinator_id", referencedColumnName="id", nullable=false)
*/
private $coordinator;
/**
* @ORM\ManyToOne(targetEntity="Group")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id", nullable=true)
*/
private $parent;
/**
* @ORM\ManyToMany(targetEntity="User", inversedBy="users")
* @ORM\JoinTable(name="groups_users")
*/
private $users;
}