У меня есть сущность User
и Location
- что-то вроде магазина, и мне нужно добавить отношения между ними, но я не знаю, что является хорошей практикой для этого, потому что:
Пользователь может иметь 3типы: Manager, Supervisor или сотрудник, и:
В каждом местоположении один пользователь имеет статус менеджера, один менеджер имеет одно местоположение;
Every Locationодин руководитель имеет одного пользователя, один руководитель имеет много расположений;
В каждом местоположении имеется много пользователей в качестве сотрудников, один сотрудник имеет одно местоположение;
Первая мысль состоит в том, чтобы добавить отношения к пользователю:
/**
* @ORM\OneToMany(targetEntity="App\Entity\Location", mappedBy="supervisor")
*/
private $locations;
/**
* @ORM\OneToOne(targetEntity="App\Entity\Location", mappedBy="manager")
*/
private $location;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Location", inversedBy="employees")
*/
private $wrokLocation;
и на месте:
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="locations")
*/
private $supervisor;
/**
* @ORM\OneToOne(targetEntity="App\Entity\User", inversedBy="location")
*/
private $manager;
/**
* @ORM\OneToMany(targetEntity="App\Entity\User", mappedBy="wrokLocation")
*/
private $employees;
Но я не знаю, является ли это лучшим способом сделать это.