「テーブル継承」(大まかに) や結合テーブルなどの概念を使用して、次のように設定します。
Person
person_id, first_name, last_name, address
Student
student_id, person_id, matr_nr
Teacher
teacher_id, person_id, salary
Lecture
lecture_id, teacher_id, lect_name, lect_description, date
Attendees
lecture_id, student_id
Student テーブルと Teacher テーブルは Person から "継承" され、Attendees テーブルは Lecture テーブルと Student の間の Join テーブルです (Teacher_id は、誰がクラスを教えているかを指定するために Lecture テーブルで使用されます。また、Join テーブルのベスト プラクティスにより、テーブルは実際には Lecture_Student という名前になります。または類似)
代替設計: (クラスの複数の教師を許可します)
Person
person_id, first_name, last_name, address
Student
student_id, person_id, matr_nr
Teacher
teacher_id, person_id, salary
Lecture
lecture_id, lect_name, lect_description, date
Lecture_Student
lecture_id, student_id
Lecture_Teacher
lecture_id, teacher_id