Итак, я заглянул в neo4j, и я могу использовать его в предстоящем проекте, так как его модель данных вполне может соответствовать моему проекту. Я просмотрел документы, но мне все еще нужен ответ на этот вопрос:neo4j: однонаправленные/двунаправленные отношения?
Могу ли я установить отношения однонаправленными?
Кажется, что люди neo4j любят фильмы, поэтому давайте продолжим с этим. Если у меня есть график:
Actor A -> [:Acts in] -> Movie B
то направление очевидно, потому что узлы разные.
Но я люблю фильмы ужасов, так что ...
Person A -> [:wants_to_kill] -> Person B
Мне нужна эта связь, чтобы быть в одном направлении, так что если я запрашиваю «Кто Персона А хочет убить?» Я получаю Person B, если я спрашиваю: «Кто хочет, чтобы человек B хотел убить?» Я ничего не получаю.
Иногда мне еще нужны отношения, чтобы быть два Направленный
Как:
Person A <-[:has_met] -> Person B
... это очевидно.
документация говорит:
Relationships are equally well traversed in either direction. This means that there is
no need to add duplicate relationships in the opposite direction (with regard to
traversal or performance).
While relationships always have a direction, you can ignore the direction where it is
not useful in your application.
Так документы говорят, отношения по умолчанию имеют направление, и я могу игнорировать, что, если я хочу.
Теперь это, где все становится сложнее:
Рассмотрим следующий график (и обратите внимание на стрелки)
Person A <- [:wants_to_kill] -> Person B
Person B -> [:wants_to_kill] -> Person C
Person C -> [:wants_to_kill] -> Person A
Если я игнорировать направления для всех [:wants_to_kill]
я получаю ложные результаты для «Кто делает Человек A/C хочет убить? " Если бы я знал, какие из них мне пришлось игнорировать, я бы не стал делать запрос.
Могу ли я каким-то образом установить отношения как двунаправленные (при их создании), или я должен моделировать это с двумя отношениями (между Person A & B)?
точка сверху, спасибо! – joschua011
Даже спустя два года это по-прежнему чрезвычайно ценно. Не удалось найти этот ответ в документах. Это очень хорошо могло быть там, но, возможно, так, как они это излагали, трудно было найти. –