저는 투자자뿐 아니라 생태계에서 함께 파트너가되는 회사 목록 (직원 계층 구조 포함) 간의 관계를 구축하려고합니다. 회사, 투자자, 고객 (J는 회사로 표시되었지만 관계 고객은 고객), CompanyX (X는 회사로 표시되었지만 파트너 회사의 관계는 직원), Employee (직원) 및 EmployeeL L).여러 관계로 CSV 업로드
LOAD CSV WITH HEADERS FROM 'FILE:///ecosystem.csv' AS line
MERGE (C:Company {Company: line.Company })
MERGE (I:Investor {Investor: line.Investor })
MERGE (J:Customer {Company: line.Company })
MERGE (X:CompanyX {Company: line.Company })
MERGE (N:Employee {Employee: line.Employee })
MERGE (L:EmployeeL {Employee: line.Employee })
MERGE (C)<-[:works_for]-(N)
MERGE (L)<-[:reports_to]-(N)
MERGE (J)<-[:Customer]-(C)
MERGE (X)<-[:Partners]->(C)
MERGE (C)<-[:Investor]-(I);
나는 이것을 복잡하게 작성합니까? 저는 Cypher에 익숙하지 않고이 작업을 수행하고 있는지 확신 할 수 없으며 데이터베이스 데이터베이스를 지워야하는 것과 비슷한 업로드를 마지막으로 수행했습니다. 또한 모든 계층 구조가 완료되지 않았으므로 J/I/C에 대해 null 값을 입력하는 방법은 무엇입니까? null 값이 있으면 csv를 업로드 할 수 없습니다. 당신은 :works_for
및 :reports_to
로 birectional 방향을 사용하지 않아야합니다
LOAD CSV WITH HEADERS FROM 'FILE:///ecosystem.csv' AS line
MERGE (C:Company {name: line.Company })
MERGE (I:Investor {name: line.Investor })
MERGE (N:Employee {name: line.Employee })
MERGE (C)<-[:Investor]-(I)
MERGE (C)<-[:works_for]-(N)
: 당신이 당신의 CSV에서만 세 개의 열이있는 경우
왜 같은 값으로 3 배 병합합니까? 'MERGE (C : Company {회사 : line.Company}) MERGE (J : 고객 {회사 : line.Company}) MERGE (X : CompanyX {회사 : line.Company})' –
어떻게 잘 모르겠습니다. 파트너, 고객 및 회사를 하나의 레이블을 회사로 사용하여 차별화 할 수 있습니다. 관계를 만들 때 회사 이름이 고객 또는 파트너 인 경우 별도의 노드가 만들어지며 관계가 연결되지 않은 것으로 나타났습니다. 다른 방법을 제안합니까? – AngryAsianMan
당신은 라벨과의 관계가 혼란 스럽다는 것을 알게됩니다. 레이블 자체의 범위를 좁혀서 격리되어있는 것으로 이해하고 다른 것들과의 관계가 그 자체로 말하게하십시오. 예를 들어, : 회사는 좋은 레이블처럼 보입니다. 그러나 다음과 같이 유지하십시오. 고객은 실제로는 이해가되지 않습니다. 그리고 CompanyX 또는 EmployeeL은 꼭 필요하지 않습니다. 또한 속성 이름이 중복 된 것처럼 보입니다. 왜 'name'을이 모든 노드의 공통 속성으로 사용하지 않을까요? – InverseFalcon