Создать модель чтения и записи модель - PullRequest
0 голосов
/ 17 января 2019

У меня есть два ограниченных контекста: - Курс (BC) имеет все, что связано с модулями, учителями, студентами ... - Форум: студенты могут создавать различные темы для каждого модуля.

Когда курс активен,Форум BC создает столько категорий, сколько курсов (bc) имеет модули.Итак, я думаю, что является лучшей моделью между этими двумя моделями записи.

Forum (BC)

Модель записи

class Forum extends AggregateRoot {
    private $id;
    private $courseId;
    private $teachers;
    private $students;
    private $modules;

    private function __construct(Id $id, CourseId $courseId) {
        $this->id = $id;
        $this->CourseId = $courseId;
    }
}

Модель записи

class Forum extends AggregateRoot
{
    private $id;
    private $courseId;

    private function __construct(
        Id $id,
        CourseId $courseId
    ) {
        $this->id = $id;
        $this->CourseId = $courseId;
    }
}

Чтение модели

class Forum extends AggregateRoot
{
    private $id;
    private $courseId;

    private function __construct(
        Id $id,
        CourseId $courseId
    ) {
        $this->id = $id;
        $this->CourseId = $courseId;
    }
}

class Module extends AggregateRoot
{
    private $id;
    private $title;
    private $courseId;

    private function __construct(
        Id $id,
        Title $title,
        CourseId $courseId,
    ) {
        $this->id = $id;
        $this->title = $title;
        $this->courseId = $courseId;
    }
}

class Student extends AggregateRoot
{
    private $id;
    private $courseId;

    private function __construct(
        Id $id,
        CourseId $courseId,
    ) {
        $this->id = $id;
        $this->courseId = $courseId;
    }
}

Мой вопрос: нужно ли добавлять в модель записи учителей, учеников и модулей?или я должен добавить только в прочитанной модели?Я думаю только в модели чтения, потому что они мне не нужны в модели записи, но, возможно, по какой-то причине я должен оставить их в обеих моделях.

...