Here is the scenario: There are teachers who teaches various subjects. Subjects comprises of chapters. There may be more than one teacher teaching the same subjects but have different chapters assigned to them. There are topics, subtopics (hierarchical) inside chapters.
I am concerned with the entities: chapters, topics only. Chapters have properties like teacher_id, subject_id,title, designated_hours. Topics (also has subtopics and subtopics may contain subtopics inside them i.e to say hierarchical). Topic properties are title, teaching_methodology, hours, periods, completion_date.
My proposed structure:
chapters topics
-id -id
-subject_id (fk) -chapter_id (fk) references chapters
-teacher_id (fk) -parent_id (fk) references topics itself
-title -title
-designated_hours -hours
-periods
-completion_date
-teaching_methodology
My question is whether my structure is normalized ? In case when topics have subtopics, the fields like hours, periods, completion_date, teaching_methodology will be null. Should I create separate table for these properties like
topic_properties
-id
-topic_id (fk) references topic
-hours
-periods
You can also propose other database structure. I just want to make sure i get the structure right before i start this module