我有实体User
和Location
-像shop之类的东西,我需要在它们之间添加关系,但是我不知道这样做有什么好习惯,因为:
用户可以有3种类型:经理,主管或员工,以及:
每个位置都有一个用户作为管理员,一个管理员有一个位置;
每个位置都有一个用户作为主管,一个主管有多个位置;
每个位置都有许多用户作为员工,一个员工有一个位置;
首先想到的是向用户添加关系:
/**
* @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;
但是我不知道这是最好的方法。
答案 0 :(得分:1)
Personnaly,我会做一个抽象类User,然后是3个扩展User类的Supervisor / Manager / Employee。与位置的关系将在每个类中,而不是在用户类中。
然后在“位置”中可以放置这些类。