2017-11-22 16 views
1

여기 내 시나리오입니다. 나는 미리 정의 된 데이터 형식 구조를 책에 대해 있습니다. 단순화를 위해 예제로 사용하십시오. 구조는 아래 이미지와 같습니다. 그것은 라벨 속성 그래프이고 정보는 자체 설명됩니다. 이 데이터 형식 구조는으로 고정되어 있으며 변경할 수 없습니다. 나는 그것을 사용한다. 1 책이있는 경우이 시나리오에서 그래프 데이터베이스를 설계하는 방법은 무엇입니까?

DTR Example

,의는 해리 포터을 부르 자, 시스템, 그것은 다음과 같습니다

DTR 1 book

그래서,이 책은 자신의 속성이 있습니다 (ID, Name, ...)이며 필드 유형이 입니다. 이 그래프를 보면 책에 대한 모든 정보를 알 수 있습니다. 이 경우

DTR 2 Books

강조로, 그 정보를 그래프 DB라는 또 다른 책이있다 :이처럼 보이는 시스템에서이 책이있을 때

문제가 발생합니다.

이 디자인의 문제점은 다음과 같습니다. 어떤 정보가 어떤 책에 속하는지 알 수 없습니다.. 예를 들어, 우리는 더 이상 publishedYear을 구별 할 수 없습니다.

내 질문은 :이 문제를 해결하거나 피하는 방법? 각 도서에 대해 1 MandatoryData을 작성해야합니까? 어떤 디자인을 제안 해 주시겠습니까?

저는 Neo4j와 Cypher를 사용하고 있습니다. 도와 줘서 고마워!

+0

이 모델에서 벗어나는 유연성이 있습니까? 값 의미를 제공하는 키 또는 컨텍스트와 별도의 노드로 값을 갖는 것은 이치에 맞지 않습니다. 그래프는 노드 간의 연결, 특히 노드간에 공통적 인 데이터 (특히 작성자, 게시자, 경우에 따라서는 PublishedYear는 많은 책에서 연결된 좋은 잠재적 공통 노드입니다)에 관한 것입니다. 다른 일반적인 데이터는 아마도 저자 이름이나 서적 제목과 같은 방식으로 가장 잘 모델링되지 않으며 인덱스 조회 및 필터링을 통해 가장 잘 처리되어야합니다. – InverseFalcon

+0

의견을 보내 주셔서 감사합니다. 예,이 모델에서 벗어날 수 있습니다. 당신의 아이디어에서, 나는'Value' 노드를 제거하고 그 노드를 가리키는 노드 안에 그들의 속성을 넣는 것이 더 낫다고 생각합니다. – AnhTriet

답변

0

(@AnhTriet에 의해) 코멘트에서

UPDATE : 귀하의 제안에 대한

감사합니다. 하지만 그 책들 사이에는 어떤 종류의 연결이 있기를 원합니다. . 새로운 MandatoryData를 생성하면 해당 도서는 으로 완전히 분리됩니다. (...) 같은 저자 또는 출판 연도가있는 경우 2 권의 책은 노드를 가리켜 야합니다. 맞습니까?

의견에 설명을 추가 한 후에 데이터베이스의 각 속성에 대해 MandatoryData 노드를 만들 것을 제안합니다. 그런 다음 책의 속성 수에 따라 특정 책을 다양한 MandatoryData 노드에 연결합니다.

동일한 저자가있는 두 권의 책은 동일한 MandatoryData 노드에 연결됩니다. 당신은 데이터 모델을 변경할 수 없기 때문에


, 나는 강력하게 각각의 새로운 책이 시스템에 추가 된 새 MandatoryData 노드를 작성하는 것이 좋습니다.

당신이 같은 쿼리은 An 특정 도서에 대한 정보를 얻을 수있을 것입니다이 방법 :

// Get the author's name of the book with ID = 1 
MATCH (:Book {ID : 1})-->(:MandatoryData)-->(:Author)-->(:Name)-->(v:Value) 
RETURN v.value 

귀하의 질문에 제안 된 모델은 가능한하지 않은 특정 속성의 소유자를 식별 할 수있는 방법이 없기 때문에 , 귀하가 지시 한대로.

+0

제안 해 주셔서 감사합니다. 그러나 나는 그 책들 사이에 일종의 연관성을 갖고 싶습니다. 새로운'MandatoryData'를 만들면, 그 책들은 완전히 분리 될 것입니다. – AnhTriet

+0

@AnhTriet 그리고 책들 사이에 관계를 추가 할 수 없습니까? '(: Book) - [CONNECTED_TO] -> (: 책)' –

+0

할 수 있지만 이해가되지 않습니다. 나는 동일한 저자 또는 출판 년이있는 경우 2 권의 도서가 동일한 노드를 가리켜 야한다는 것을 의미합니까? – AnhTriet