Ещё есть идеи по организации этого всего:
Пользователь имеет имя, номер (id), список групп и оценок.
Разницы между учителем и учеником нет. Ученик может создать свою группу (по типу «киберспорт» или «программирование») и быть там учителем, а учитель может быть учеником на курсе подготовки.
Почти всё — это группа. Группа состоит из пользователей (в т.ч. учителей), уроков и подгрупп. Все уроки группы показываются и в подгруппах.
Так может выглядеть иерархия:
serv.er > ГБОУ школа № 123 > Начальная школа > Первые классы > 1 «Ы» > Русский язык.
Учитель указывается не в группе, а в уроке. Таким образом можно легко заменять уроки.
Урок состоит из необязательной темы, домашки, группы (одной), времени, длительности и списка оценок. Предмета у урока (по типу "алгебра" или "русский язык") нет. За предмет считается группа, в которой этот урок находится.
Оценка принадлежит не учителю, а ученику. У нее есть значение, вес и комментарий. Также она принадлежит уроку.