Согласен. Но есть один вопрос: как в такой схеме отобразить взаимодействие типа "Взаимодействует", то есть когда подразделения равноправны? Если одно из них условно назначить "гл", а второе "подч", то по запросу 'все подразделения, которые "взаимодействуют" друг с другом' отберется только половина подразделений
ну это как запрос написать...
если руками, то проблем не будет :о))
Действительно - не меняя структуры БД, в коде можно просто перечислить типы взаимодействия, по которым подразделения считаются равноправными и для них применить свою логику (если это необходимо). Название Подразделений - гл и подч - это же условность.
Или изменить структуру - ввести в Справочник еще одно поле - признак взаимодействия (равноправный или подчиненный). И разруливать логику по нему.
Второй вариант лучше, если по каим-то причинам возможно изменение признака (раньше взаимодействие считалось "равноправный", а теперь по каким-то причинам "подчиненный"), так как не требует правки кода. А сопровождать справочник, как правило, легче и проще (иногда это можно доверить пользователю системы)) ).