Разрабатываем 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.