2011-07-15 46 views
0


最近我被要求设计课程应用(Java)模型处理学生/教师/学期/课程实体。这就像电子表格设计问题。设计一个学生 - 课程 - 教师 - 学期电子表格

条件是:学生可以报名参加由某位教师授课的课程,在特定时间发生一学期,比如在第二学期。

学生可能有多个课程,由多位教师(每位教师在多个时间教授一门特定课程)教授(每门课程发生在一个独特的学期)。 因此,学生+课程+教师+学期的组合是独一无二的。

什么是更智能的设计?

我最初从一个有学生id和Map的地图开始,在这个地图中,'Key'值被设置为Course-id,'value'被设置为另一个班级,比如TeacherSemester。 TeacherSemester类包含TeacherId和SemesterId值。

但这似乎不是一个可扩展的解决方案。 任何人都可以提出更好的设计? 任何讨论都会有帮助。

Thaks

+1

我想你会更好地服务自己尝试一下,并通过混乱。你可能对你的第一次尝试并不满意,但你会学到更多的东西,而不是简单地问我们的想法。例如,如果你不喜欢你的第一次迭代,你会非常清楚地知道为什么这是一个坏主意。 –

回答

1

老师和学生是角色,他们不是班级。

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 
}