2011-07-15 18 views
0


最近、学生/教師/セメスター/コースエンティティを扱うカリキュラムアプリケーション(Javaの)モデルを設計するように求められました。それはスプレッドシートの設計問題のようなものです。学生 - コース - 教師 - セメスタースプレッドシートを設計

条件は次のとおりです。生徒は、特定の時間に発生する学期、たとえば学期2のように、ある教師が教えるコースに登録することができます。

生徒は、複数の教師(複数の教師がそれぞれ特定のコースを教える)によって複数のコースを開くことができます(各コースは独自のセメスターで行われます)。 したがって、student + course + teacher + semesterの組み合わせはユニークです。

スマートなデザインは何ですか?

学生IDとマップの「キー」値がCourse-idに設定され、「値」が別のクラス、たとえばTeacherSemesterに設定されているマップから始めました。 TeacherSemesterclassにはTeacherIdとSemesterIdの値が含まれています。

しかし、これはスケーラブルな解決策ではないようです。 誰かがより良いデザインを提案できますか? どんな議論にも役立ちます。

タックス

+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 
} 
関連する問題