Это чрезвычайно широкий вопрос, но он может указать вам правильное направление. Обратите внимание, что вы только сможете хранить правила отношений в базе данных. Их применение будет зависеть от кода вашего клиента. Попробуйте это для размера ..
unit:
unit id,
name,
unit relationship:
unit id,
foreign unit id
Затем вы можете использовать свою таблицу отношений юнитов следующим образом.
unit id
относится к описываемой единице.
foreign unit id
должен быть обнуляемым.
A unit
без записей отношений может существовать только в корне иерархии. unit
с null
foreign unit id
может иметь любой другой unit
в качестве родителя. В противном случае unit
должен иметь другого unit
в качестве своего родителя, и его тип должен быть одним из тех, которые определены в его записях отношений.
Что касается хранения самих экземпляров, это должно быть просто ..
instance:
instance id,
unit id,
parent instance_id
Я уверен, что вам понадобятся другие поля (например, имя), но я предполагаю, что вы получите дрейф.