Grapeoff
@Grapeoff
В чём концепция...?

Как лучше всего реализовать расписание ученика и группы в MongoDB?

Разрабатываем CRM систему для онлайн школы и появилась необходимость перепроектировать/убедиться в правильности схемы расписания.

В базе данных есть две главные коллекции - ученики и группы. Когда мы создаём расписание группе - всем её ученикам добавляется его копия (чтобы можно было оплачивать дни для каждого отдельно).

Расписание имеет вот такую схему:

export class Schedule {
    @prop({ type: Boolean, required: false })
    paid: boolean;

    @prop({ type: String, required: false })
    tutor: string;

    @prop({ type: String })
    date: string;

    @prop({ type: () => [String] })
    duration: string[];

    @prop({ type: Number, required: false, default: 2 })
    status: number;

    @prop({ type: String })
    message: string;

    @prop({ type: String, required: false })
    start: string;

    @prop({ type: String, required: false })
    finish: string;
}

И в итоге у группы и у учеников получаем огромный массив объектов такого типа. Так как я был крайне неопытен когда проектировал всё это, то я очень сомневаюсь, что сделал всё правильно. Возможно. стоило выделить его в отдельную коллекцию? Но тогда как у учеников по отдельности изменять объекты этого массива - например статус с paid на true.
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы