我試圖建立一個除了投資者以外的生態系統合作在一起的公司名單(與員工層次結構)之間的關係。我的csv中有6列是:公司,投資者,客戶(J標記爲公司,但是關係客戶),CompanyX(X標記爲公司,但是表示合夥公司的關係),員工(僱員)和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輸入一個空值,因爲並不是所有的層次都完成了?當存在空值時,我無法上傳csv。
爲什麼你3x合併在同一個值? MERGE(C:Company {Company:line.Company}) MERGE(J:客戶{公司:line.Company}) MERGE(X:CompanyX {Company:line.Company})' –
我不確定還可以使用單一標籤作爲公司來區分合作夥伴,客戶和公司。我發現在創建關係時,如果公司的名稱既是客戶也是合作伙伴,那麼它會創建單獨的節點,並且關係沒有連接。你有其他建議嗎? – AngryAsianMan
這聽起來讓你感到困惑與標籤的關係。嘗試縮小標籤的範圍,使其獨立於事物本身,然後讓這些關係與其他事物相互對話。例如:公司看起來像一個很好的標籤,所以要保持這一點,但是:客戶沒有什麼意義,因爲這只是一個:與另一個公司有客戶關係的公司。你絕對不需要:CompanyX或:EmployeeL。你的財產名稱似乎也是多餘的。爲什麼不把'名稱'作爲所有這些節點的公共屬性? – InverseFalcon