我創建了一個有一些拳擊比賽的簡單csv。我試圖弄清楚如何在Neo4j中對此進行建模。使用neo4j建模Cypher體育錦標賽
的CSV看起來是這樣的:
我在Neo4j的使用這個小數據集是因爲它看起來像Neo4j的將是輕鬆查詢的好辦法誰打誰,和練習的興趣誰了普通對手,或其他。
我的第一個想法是,每個拳擊手自然應該在'boxer'節點中表現出來,並且每個打鬥都應該在'fight'節點中表現出來。
這樣建模後,我意識到,實際上並不是每個拳擊手的一個節點,因爲隨着時間的推移,拳擊手的年齡會發生變化。所以我意識到每個拳擊手都必須爲每場戰鬥都有一個單獨的節點。例如,玻璃Joe有2個打架,他也因此出現了兩次,一次是當他23歲,一旦明年當他作戰睡魔,他是24:
不過這還挺失敗的目的。現在,我的圖將由3個節點的斷開連接組成,每個csv中的每個節點都有一個節點。那麼目的是什麼?
我的問題是,我怎麼可以模擬這種既簡單又複雜的情況是這樣的:某些類型的比賽或遊戲隨時間變化,以及競爭對手的節點的屬性的改變 - 但我們希望圖形是連接:
(哎呀:睡魔現在應該是51)
但話又說回來,我不認爲上面的圖片是正確的 - 所示的邊緣實際上是boxer
節點的性能。如果他們是拳擊手的屬性......那麼他們不屬於邊緣,對吧?
這裏是我到目前爲止的代碼(和CSV lives here):
LOAD CSV WITH HEADERS FROM
'file:///<grab it from dropbox please!>' AS line
CREATE (b:boxer {boxer_id: line.boxer_id, name: line.name})
SET b.age = TOINT(age);
LOAD CSV WITH HEADERS FROM
'file:///<grab it from dropbox please!>' AS line
MERGE(f:fight {fight_id: line.fight_id});
我結束了這些節點:
...但不知道如何連接它們。任何意見或建議將不勝感激。