为这种情况建模的最佳做法

时间:2018-07-05 16:31:36

标签: symfony design-patterns doctrine fosuserbundle

我有一个从FOSUserBundle扩展fos_user类的类。 每个用户都有一些角色。 如果用户具有角色“ BASIC”,则他与实体Entry具有一个OneToMany关系(一个基本用户具有许多条目)。 如果用户的角色为“ MASTER”,则他与实体House有一个ManyToMany关系(许多主用户有许多房子)。

我这样做:

/**
 * @ORM\Entity
 */
class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\ManyToMany(targetEntity="House", inversedBy="users")
     */
    protected $houses;

    /**
     * @ORM\OneToMany(targetEntity="Entry", mappedBy="user")
     */
    protected $entries;

}  

但这听起来不太好。

在这种情况下是否有设计模式

1 个答案:

答案 0 :(得分:0)

@lxg编写的一种可能的模式是单表继承。 您可以看一个示例here