2011-10-13 2 views
1

나는 그래프 데이터베이스 주위에서 머리를 감싸려고 노력하고있다. 어쩌면 누군가가이 관계를 모델링하는 올바른 방법을 제게 설명하는 것을 도울 수 있습니다. 이것은 주로 neo4j의 관점입니다. 그러나 대부분의 그래프 데이터베이스에 적용 할 수 있다고 가정합니다.요리법을 그래프 데이터베이스로 표현하기

나는 Recipe 노드와 Ingredient 노드를 가지고 있습니다. Ingredient 노드는 Recipe 노드와의 관계가 ingredient_in입니다. 관계는 몇 가지 특성을 보유 할 것이며, 특히 주목해야 할 것은 측정 단위가있는 금액 필드입니다.

그래프의 다른 곳에서는 변환 비율을 갖는 converted_to 관계를 갖는 UnitOfMeasure 노드가 있다고 생각할 수 있습니다.

제가 고심하고있는 점은 Ingredient-> Recipe 관계를 UnitOfMeasure로 표시하는 방법입니다. RDMS에서 오는 사이에 다른 노드가 필요한 것처럼 느껴지지만 그래프 데이터베이스에서는 잘못 생각합니다.

답변

3

이 두 가지에 따라 달라집니다

가) 당신이 관계 또는 단위와 양을 어떻게 사용합니까 n 차 관계

b)에 기인 한 할 - 아마도 사이의 노드가 쉽습니다을

Recipe -- Entry   -- Ingredient 
      amount: double 
      | 
      | 
      UniOfMeasure 

같은 "정상"디자인을 사용

이모는 항목이 노드 인 괜찮 - 당신은 기인 가장자리를 처리 할 수있는 그래프 데이터베이스를 사용하는 경우에도 . 디자인은 귀속 된 n-ary edge btw와 상당히 동일 할 것입니다. 유일한 차이점은 Entry가 이제는 "contains"로 이름 지어졌지만 Edge가 아닌 노드라는 것입니다.

관련 문제