Разработать электронную таблицу «Студент-Курс-Учитель-Семестр» - PullRequest
0 голосов
/ 16 июля 2011


Недавно меня попросили разработать модель приложения учебного плана (на Java), касающуюся сущностей Студент / Учитель / Семестр / Курс. Это что-то вроде проблемы дизайна электронной таблицы.

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

Учащийся может иметь несколько курсов, которые преподаются несколькими учителями (каждый учитель преподает определенный курс) несколько раз (каждый курс происходит в уникальный семестр). Таким образом, комбинация студент + курс + учитель + семестр уникальна.

Каким будет умный дизайн?

Первоначально я начал с класса, имеющего идентификатор студента и карту, где на карте «key» установлено значение «Course-id», а «value» - другой класс, скажем TeacherSemester. Класс TeacherSemesterclass содержит значения TeacherId и SemesterId.

Но это не похоже на масштабируемое решение. Кто-нибудь может предложить лучший дизайн? Любое обсуждение будет полезно.

Thaks

1 Ответ

1 голос
/ 06 июля 2012

Учитель и ученик - это роли, а не классы.

class Person
{
    string Name
}
class Course
{
    List<Person> enrolledStudents
    List<Person> teachers
    Semester semester
    CourseTime time
}
class Application
{
    List<Course> courses
    List<Person> persons
    List<Semesters> semester
    List<CourseTime> courseTimes
}
...