그래픽 형식으로 XSD를 유지하려면 Neo4J를 사용하고 있습니다. 그래프의 각 Node는 String의리스트 (배열) 인 속성을 가지고 있습니다. 내 쿼리는이 arraylist를 기반으로합니다.Neo4J 스키마 디자인 쿼리
예 : 그래프의 모든 노드에 알파벳 목록이 속성으로 포함되어 있다고 가정 해 봅시다. 이제 내 쿼리는 arraylist에 'C'가 포함 된 모든 노드를 생성해야합니다.
제 질문은 arroylist 속성에서 모든 알파벳을 모든 노드로 자식 노드로 연결된 개별 노드로 이동해야하는지 여부입니다. 그렇게하면 하위 노드에 'C'값이 포함 된 모든 노드가 생성되도록 쿼리가 변경됩니다.
위의 두 가지 방법 중 어느 것이 더 효율적입니다. arraylist의 속성을 가졌거나 arraylist의 개별 값을 포함하는 별도의 자식 노드를 가짐.
실제 시나리오에서 arraylist는 수천 개의 항목을 포함 할 수 있습니다. 그래서 두 번째 방법을 시도하고 각 arraylist 값에 대해 별도의 노드를 만들면 트리가 크기가 커집니다.
하지만 두 가지 중에서 효율적인 방법론을 알아야합니다.
"알파벳"의 의미를 분명히 할 수 있습니까? 그것은 문자 스트링인가? 또는 한 영문자의 문자입니까? 일러스트레이션이나 자세한 내용이 도움이 될 것입니다. – cybersam
[이 다소 관련 질문] (http://stackoverflow.com/questions/28655313/neo4j-enforcing-schema-with-xsd)이 관심의 대상 일 수 있습니다. – cybersam
그래, 이미 위 링크를 보았습니다. 그러나 아직도 나는 나의 선택을 탐구하고 싶다. – Piyush