2016-12-04 1 views
0

저는 neo4j에 멍청한 사람입니다. 제 질문은 매우 간단 해 보일 수 있습니다. 다음 구조의 CSV 파일이 있습니다. Structure Id는 Persons ID이고 Fam은이 사람이 참여한 프로젝트 ID입니다. 동일한 프로젝트에서 작업 한 사람을 연결하고 싶습니다.고유 한 노드를 만들고 여러 값을 사용하여 레이블 만들기

이 경우 최상의 데이터 모델은 무엇입니까? 우선 내 머리 속에 id-node와 Fam 레이블을 만드는 것이있다. 하지만 하나의 노드에 여러 레이블을로드하는 방법을 모르겠습니다. 두 번째는 id와 Fam을 모두 노드로 만든 다음 관련 직원을 표시하는 쿼리를 만드는 것입니다. 두 번째 경우 코드

은 다음과 같이 될 것입니다 :

LOAD CSV WITH HEADERS FROM 'file:///PNG20161202.csv' AS line 
MERGE (n:id {Person_id: toInt(line.id)}) 
WITH line, n 
MERGE (m:Fam {Fam_id: toInt(line.Fam)}) 
WITH m,n 
MERGE (n)-[:WORK_IN]->(m); 

그러나 나는 단지 관련 ID를 표시하는 방법을 모르겠어요. (나는이 네트워크를 수출하고 Gephi에서만이 네트워크를 시각화해야한다.)

첫 번째 경우에 나는 id와 관계를 만드는 방법을 알고 있지만, multilabel로 id를 만드는 LOAD CSV 쿼리를 작성하는 법을 모른다. .

제안 사항에 매우 만족합니다.

답변

1

나는 당신이 테이블과 현재 데이터의 관점에서 너무 많이 생각하고 있다고 생각합니다. 그래서 당신이 모델링하고자하는 것의 더 큰 그림을 놓치고 있습니다. 그래프 데이터베이스를 사용하면 엔티티 (모델링하는 중요한 "사물")와 그 관계를 쉽게 생각할 수 있습니다. .

가 는

"ID가 사람 ID이며, 팸이 사람이 참여한 프로젝트 ID이며, 내가 사람을 연결하려는 :

이, 나는 생각한다, 당신의 묘사의 가장 중요한 부분이었다 그들이 같은 프로젝트에서 일한다면. "

중요한 "물건"은 사람과 프로젝트입니다. 그래서 저는 이것들이 여러분이 작업해야하는 레이블 인 것처럼 보입니다 : Person과 : Project. ID는 고유 한 경향이 있으므로 레이블 및 ID 속성에 고유 한 제약 조건이있는 Person 및 : Project 노드의 속성 일 가능성이 높습니다.

당신은 너무처럼 고유 제한 조건을 설정할 수 있습니다 : 명 :

CREATE CONSTRAINT ON (p:Person) 
ASSERT p.ID IS UNIQUE 

CREATE CONSTRAINT ON (pr:Project) 
ASSERT pr.ID IS UNIQUE 

가져 오기는 연결 될 프로젝트는 그들에했다.

LOAD CSV WITH HEADERS FROM 'file:///PNG20161202.csv' AS line 
MERGE (n:Person {ID: toInt(line.id)}) 
MERGE (m:Project {ID: toInt(line.Fam)}) 
MERGE (n)-[:WORKED_ON]->(m); 

이이 있으면, 그것은 쿼리하기 쉽게해야합니다 : 같은에서 일한 사람 : 프로젝트, 당신은 그것에 대해 부하 CSV 필요하지 않습니다. 만들기위한

편집

는 : 같은 근무 인원 : 사이의 관계를 알고

MATCH (p1:Person)-[:WORKED_ON]->(:Project)<-[:WORKED_ON]-(p2:Person) 
WITH DISTINCT p1, p2 
MERGE (p1)-[:KNOWS]-(p2) 
+0

내가하고 싶은 것을 안녕 InverseFalcon가, 보여 그냥 : 프로젝트, 당신은이 쿼리를 사용할 수 있습니다 관계. 그들은 같은 프로젝트에서 일하면 서로 [알고] 있습니다. 이 쿼리에 대한 도움을 주시면 감사하겠습니다. 미리 감사드립니다! –

+0

나는 내 대답을 편집하여 해당 관계를 만드는 쿼리를 포함 시켰습니다. – InverseFalcon

+0

고마움, 당신은 이미 내 질문에 대답했다. 당신이이 물건을 수출하는 것을 도울 수 있다면 위대 할 것이다. 그렇지 않다면 나는 내 연구를 할 것이다)) –

관련 문제