Колледжи по-разному организуют свои факультеты. Некоторые колледжи идут по схеме Школа -> семестр -> факультет
. Другие имеют промежуточные этапы, самый длинный из которых - Школа -> Под_кампус -> Программа -> Срок -> Отдел -> Департамент
.
Школа
, Термин
и Факультет
- единственные, которые всегда существуют в "дереве" факультетов школы. Порядок этих категорий никогда не меняется, причем второй пример, который я вам привел, является самым длинным. Каждый шаг вниз - это отношение 1:N.
Теперь я не уверен, как установить отношения между таблицами. Например, какие столбцы находятся в Term
? Его родителем может быть Program
, Sub_Campus
или School
. Какой из них выбрать, зависит от системы школы. Я могу представить себе настройку таблицы Term
, чтобы иметь внешние ключи для всех этих таблиц (которые по умолчанию будут иметь значение NULL
), но я не уверен, что это канонический способ решения проблемы.