Пожарный магазин: Структура академического расписания - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь найти эффективную структуру для хранения академических расписаний в Firestore.

Проблемы, которые мне нужно решить:

  • Каждый курс имеет свое время начала и окончания
  • Каждый курс имеет свою продолжительность в неделях
  • Существует несколько различных расписаний для курса
  • Необходимо иметь возможность анализировать посещаемость в классе

Вот структура, которую я сейчас имею:

courses
 - course_id: string
 - duration: number (weeks, eg: 24)
 - end_time: number (timestamp of the last course day)
 - start_time: number (timestamp of the first course day)
 - name: string

modules
 - module_id: string
 - lectures: array
   - lecture_id
 - name: string
 - code: string
 - no_students: number

classes
 - class_id: string;
 - start_time: string (eg: 10:00)
 - end_time: string (eg: 11:00)
 - weekday: string (eg: Monday)
 - module: map (a copy of module object to reduce reads)
 - start_week: number
 - end_week: number

timetables
 - timetable_id: string
 - classes: array
   - class_id
 - duration: number (duration in weeks, eg: 11)
 - semester: number
 - week: string (current week, eg: 4)

users
 ...
 - timetable_id: string

Отдельная коллекция классов позволит упростить очереди для сравнения с коллекцией посещаемости.

Чтобы прочитать расписание, я получаю документ пользователя, затем получите документацию по расписанию, а затем получите классы, используя firestore.getAll().Это приводит к большому количеству прочтений документов.

Чтобы обновить текущую неделю, мне нужно будет обновлять каждый документ по расписанию.

Как лучше было бы подойти к этому?

Спасибо за ваше время и помощь.

1 Ответ

0 голосов
/ 13 февраля 2019

Хорошо повторить важные данные в другом документе в Firestore.

Допустим, Диана хочет прочитать ее расписание по телефону, ее расписание состоит из 4 курсов, 3 модулей, 10 занятий.Поместите все эти детали в один документ, поэтому, когда она захочет просмотреть свое расписание на экране приложения, приложение прочитает один документ, чтобы выполнить свое расписание.У каждого студента будет свой график работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...