Интересная проблема древовидной/иерархической структуры данных

Колледжи по-разному организуют свои факультеты. Некоторые колледжи идут по схеме Школа -> семестр -> факультет. Другие имеют промежуточные этапы, самый длинный из которых - Школа -> Под_кампус -> Программа -> Срок -> Отдел -> Департамент.

Школа, Термин и Факультет - единственные, которые всегда существуют в "дереве" факультетов школы. Порядок этих категорий никогда не меняется, причем второй пример, который я вам привел, является самым длинным. Каждый шаг вниз - это отношение 1:N.

Теперь я не уверен, как установить отношения между таблицами. Например, какие столбцы находятся в Term? Его родителем может быть Program, Sub_Campus или School. Какой из них выбрать, зависит от системы школы. Я могу представить себе настройку таблицы Term, чтобы иметь внешние ключи для всех этих таблиц (которые по умолчанию будут иметь значение NULL), но я не уверен, что это канонический способ решения проблемы.

7
задан Matt Fenwick 29 September 2011 в 18:21
поделиться