말, 소셜 네트워킹 플랫폼의 "친구"가 일반적으로 모델링 될 것이다의 경우 포함하는 관계로 : 다음 검색되는이 경우 단일 관계 또는 두 관계를 사용해야합니까?
(x:User)-[:FRIEND]->(y:User)
:
이제MATCH (x:User)-[:FRIEND]-(y:User) RETURN x, y
이의 말을하자를, x
과 y
의 경우 : 서로간에 친구이지만 y
은 실제로는 x
을 신뢰하지 않습니다. x
그런 식으로 느끼지 않는다 y
.
그래서, y
의 관점에서, 데이터 모델은 실제로 :
(x)-[:FRIEND]->(y)
, 무언가 그러나
(y)-[:FRIEND {untrusted: true}]->(x)
, x
의 관점에서, 그건 가지처럼 보이지 않는 방법 이와 같이 관계를 만드는 데는 분명히 부적절합니다.
MATCH (x:User {...}), (y:User {...}) MERGE (x)-[f:FRIEND]->(y) SET f.untrusted = true
... 지금 가지 모두 사용자의 관점에서이처럼 보이는 끝낼 때문에 :
가(x:User {...})-[:FRIEND {untrusted: true}]->(y:User)
(x:User {...})<-[:FRIEND {untrusted: true}]-(y:User)
는 일반적인 조언은 일반적으로 대부분의 경우 두 개의 분리 된 관계를 방지하는 것입니다,하지만, 내가 약 어떻게 가야 관계의 경우에 대한 모델링?