Я пытаюсь написать небольшое приложение, используя Scala-Graph. Это отличный пакет в порядке, но при моделировании объектов приложения я столкнулся с вопросом.Ограничение степени узла на графике
Скажем, мы моделируем сотрудников в организации. Номер Employee
принадлежит только одному Department
, но может принадлежать двум или более SocialClub
. Если рассматривать Organisation
как график, а затем
var organisation = Graph[Employee,GroupsInOffice]()
// .....
val e1 = Employee (1, "Nirmalya")
val d1 = Department("Finance")
val d2 = Department("Sales"
val club1 = Club("Beer Drinkers")
val club2 = Club("Horse Riders")
// ....
Таким образом, следующее должно быть разрешено:
organisation = organisation(e1 ~> club1,e1 ~> club2)
Но, следующее должно не допускается:
organisation = organisation(e1 ~> d1,e1 ~> d2)
Мой вопрос заключается в том, какой шаблон принимается для обеспечения профилактики. Должно ли это быть ограничение, которое определено на самом графике (организация), или это должна быть проверка уровня приложения, которая подсчитывает количество раз e1
используется при настройке отношения (~
)? Есть ли какой-либо другой особый подход, который вы принимаете в такой ситуации?