2017-09-17 4 views
0

저는 그래프 데이터베이스를 사용하는 데 익숙하지 않고 OrientDB의 From/To 또는 In/Out 개념에 대해 다소 혼란스러워합니다.OrientDB Edge From Confusion

어떤 꼭지점이 출발지이며 끝점을 정의하는 가장 좋은 방법은 무엇입니까? 또는 예를 들어 둘 다 소셜 네트워크에서 연락 관계가있는 경우입니다.

답변

1

제 생각에이 혼란의 대부분은 에지에 대한 Apache TinkerPop 표기법에서 비롯됩니다. OrientDB는 역사적으로 TinkerPop을 그래프 API로 채택했습니다 (일부 사항은 여기에서 변경되었으므로 v 3.0에서는 Apache TinkerPop API에 종속되지 않는 원시 문서/그래프 API가있을 것이지만 TinkerPop 3.x에서도 지원을 유지할 예정입니다) 그래서 표기법은 동일합니다.

아파치 TinkerPop 가장자리에 연결 정점과 정점에 연결된 양쪽 가장자리를 정의하는 데 IN/OUT 사용

  • 주어진 정점, 당신은 OUT에 의해 참조 나가는 가장자리와 (지금까지 너무 IN에 의해 ​​참조 들어오는 가장자리가) 좋은
  • 는 가장자리 감안할 때, 그것은 시작점 (IN
  • 에 의해 여기

그리고를 확인 OUT으로 식별이에서 오는 정점) (아야!)과 끝 지점 (이에가는 정점)가 문제가 생깁니다 : 초보자에게는 매우 자연 스럽습니다.

vertex -out-> edge -out-> anotherVertex 

을하지만 불행히도 그것은 잘못된 일 : out + out으로 에지 통과를 고려!

직선 에지 통과를 수행하는 올바른 방법은 out + in입니다 : 당신은 또한 in + out과 뒤쪽 가장자리를 통과 할 수

vertex -out-> edge -in-> anotherVertex 

.

내가 전에 썼던 것처럼, IMHO는 매우 직관적이지 않습니다. 처음에는 이것에도 문제가있었습니다. IMHO는 가장자리 연결에 가장 적합한 표기는/TO 대신 OUT/IN 대신 표시되었지만 지금은 표준이므로 많은 작업을 수행 할 수 없습니다.

내가 말할 수있는 유일한 것은 약간의 연습으로 자연스러워집니다.

별도의 고려 사항은 소셜 네트워크 및 일반적으로 방향을 의도하지 않은 가장자리에 대한 것입니다 (소셜 네트워크에서 가장자리의 방향은 중요하지 않습니다. 사실 나는 당신의 친구라는 사실을 암시합니다. 내 친구). Apache TinkerPop에는 방향이 지정되지 않은 가장자리 개념이 없으므로 방향성있는 가장자리를 사용하고 방향을 무시할 때 방향을 무시하면됩니다 (예 : both() 연산자 또는 BOTH 방향 사용)