В Neo4j возможно ли иметь одно и то же имя отношения для разных объектов

В качестве примера возьмем БД фильмов. Если бы я ввел в БД всех людей, которые работали над фильмом, было бы сложно найти имена родственных связей для всех. Было бы проблемой иметь такие объекты, как: sound_designer, sound_engineer, set_designer, set_assistance, cable_guy и т. д. с одинаковым отношением «WORKS_IN» к объекту Movie. Является ли это возможным? Это хорошее решение? Будут ли у меня проблемы? Есть ли альтернативы?


person alex    schedule 06.12.2017    source источник
comment
На такой вопрос довольно сложно дать точный ответ. Вполне возможно иметь несколько меток узлов с одним и тем же отношением. Было бы неплохо иметь общую метку для членов экипажа, а также добавлять ее к узлам (например, :CrewMember:SoundDesigner, :CrewMember:SoundEngineer и т. д.). Я не ожидаю каких-либо проблем с этой настройкой, но вы должны реализовать и попробовать ее, чтобы увидеть, работает ли она для вашего варианта использования.   -  person Gabor Szarnyas    schedule 07.12.2017


Ответы (1)


Ответ Габора в комментариях хороший: нет проблем с узлами с разными метками, имеющими отношения одного типа к одному и тому же узлу.

Многократная маркировка узлов с их ролью — неплохая идея, однако это предполагает, что роль человека постоянна на протяжении всех лет, отраженных в графике, что может не соответствовать действительности. Или, скорее, метки будут отражать роли, которые они играли на протяжении всей своей истории, но то, какую конкретную роль они играли в конкретном фильме, скорее всего, нужно как свойство самих отношений, например свойство role. Это может быть даже список, если у человека может быть несколько ролей в одном и том же фильме, подобно актерам, играющим роль (где есть свойство списка roles в отношениях :ACTED_IN).

person InverseFalcon    schedule 06.12.2017