title: Design a Student-Course-Teacher-Semester spreadsheet
body: <p><BR/>Recently I was asked to design for curriculum application (in Java) model dealing with Student/Teacher/Semester/Course entities. It is something like spreadsheet design problem.</p>
  
  <p>The condition was: a student can enroll for a course, taught by some teacher, for a semester occurring at a particular time, say at semester-2. </p>
  
  <p>A student may have multiple courses, taught by multiple teachers (each teacher teaches a specific course) at multiple time (each course occurs at an unique semester).
  Thus the combination of student + course + teacher+ semester is unique.</p>
  
  <p>What will be a smarter design?</p>
  
  <p>I initially started with a class having  student id and a Map where the map has 'key' value set to Course-id and 'value' set to another class, say TeacherSemester.
  The TeacherSemesterclass contains the TeacherId and SemesterId values.</p>
  
  <p>But this does not seem to be a scalable solution. 
  Can anyone suggest a better design?
  Any discussion will be helpful.</p>
  
  <p>Thaks</p>