Лучшие практики для моделирования этого сценария

У меня есть класс, расширяющий класс fos_user от FOSUserBundle. У каждого пользователя есть свои роли. Если у пользователя есть роль «BASIC», у него есть отношение OneToMany к Entry (один базовый пользователь имеет много записей). Если у пользователя есть роль «МАСТЕР», он имеет отношение ManyToMany к объекту House (у многих основных пользователей много домов).

Я сделал это:

/**
 * @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;

}  

Но звучит не очень хорошо.

Есть ли для этого сценария шаблон дизайна?

И ваш вопрос…?

lxg 05.07.2018 21:18

Вопрос будет в рефакторинге: «есть ли шаблон проектирования для этого сценария?».

Vittore 06.07.2018 07:17

Возможным шаблоном может быть наследование одной таблицы. Когда ваш вопрос будет снова открыт, а вы пока не нашли решения, я могу привести вам пример.

lxg 06.07.2018 12:12

Может ли пользователь иметь обе роли? Если да, то наследование одной таблицы не является ответом.

Asmir Mustafic 12.07.2018 09:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
1
4
79
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как написал @lxg, возможный шаблон - наследование одной таблицы. Вы можете посмотреть пример здесь.

Другие вопросы по теме