最近我被要求为课程应用程序(Java)设计处理学生/教师/学期/课程实体的模型。这有点像电子表格设计问题。
条件是:一个学生可以注册一门课程,由一些老师教授,在一个学期发生在一个特定的时间,比如在第2学期。
一个学生可以有多个课程,由多个老师在多个时间教授(每个老师教一个特定的课程)(每个课程在一个独特的学期发生)。因此,学生+课程+教师+学期的组合是独一无二的。
更聪明的设计是什么?
我最初从一个具有学生id的类和一个Map开始,其中映射的"键"值设置为Course-id,"值"设置为另一个类,例如TeacherSemester。TeacherSemesterclass包含了TeacherId和SemesterId值。
但这似乎不是一个可扩展的解决方案。有人能提出更好的设计吗?任何讨论都会有帮助的。
Thaks
老师和学生是角色,他们不是班级。
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
}