I am a beginner with data modelling and I am trying to construct a logical data model using Oracle SQL Developer Data Modeler.
I am not sure when to and when not to use sub-types and how should they be represented.
For example, if I have an entity "STUDENT" and an entity "COURSE" which can be something like "BACHELOR OF ARTS" or "MASTERS OF IT" etc. and COURSE_TYPE as "BACHELORS" or "MASTERS" but not both.
NOTE: MASTERS type courses will have other entities related to it (ONLY) which is irrelevant to BACHELORS. So it will help to have a MASTERS entity box separately to make the relevant connections.
How should I model this ?
Options:
Have "COURSE_TYPE" as an entity (which will have "COURSE_TYPE_ID" and "COURSE_TYPE_DESC") and "COURSE_COURSE_TYPE" as another entity (which will have attributes COURSE_ID, COURSE_TYPE_ID)and connect both "COURSE" and "COURSE_TYPE" to it?
Have "COURSE_TYPE_ID" as an attribute in "COURSE" and have another entity "COURSE_TYPE" which will simply have COURSE_TYPE_ID and "COURSE_TYPE_DESC" as attributes ?
Subtype the entity "COURSE" using XOR relationship as "BACHELORS" and MASTERS"
Subtype the entity "COURSE_TYPE" using XOR relationship as "BACHELORS" and MASTERS"
Have an entity "COURSE" and add 2 entities within it for "BACHELORS" and MASTERS" (box in box)