Php 与Cypher&;创建唯一的
我正在从文本文件中读取足球比赛数据,并希望创建比赛和裁判节点。我希望逻辑工作的方式是,我创建一个比赛节点,然后我获取裁判名称,并仅在该裁判不存在时创建裁判节点,否则我只将现有裁判链接到比赛。我目前没有根节点,也不确定是否应该创建一个(对于图形建模来说是非常新的) 我有以下问题,我认为我很接近,但不在那里Php 与Cypher&;创建唯一的,php,graph,neo4j,Php,Graph,Neo4j,我正在从文本文件中读取足球比赛数据,并希望创建比赛和裁判节点。我希望逻辑工作的方式是,我创建一个比赛节点,然后我获取裁判名称,并仅在该裁判不存在时创建裁判节点,否则我只将现有裁判链接到比赛。我目前没有根节点,也不确定是否应该创建一个(对于图形建模来说是非常新的) 我有以下问题,我认为我很接近,但不在那里 $match= $client->makeNode(); $match->setProperty('label', "match: ".$feed['match_number'])
$match= $client->makeNode();
$match->setProperty('label', "match: ".$feed['match_number'])
->setProperty('type', "match")->save();
//现在已经创建了match节点,让我们看看提要中的当前裁判是否已经存在
$queryString = "START match=node({nodeId}) ". <----- NEED TO LOOK AT ALL CASES?????
"CREATE UNIQUE (referee{label:{name}, type:'referee'})-[:REFEREED{ label:'REFEREED' }]->(match)"."RETURN referee";
$query = new Neo4j\Cypher\Query($client, $queryString, array('nodeId' => $match->getId(),'name' => $feed['referee_name']));
$result = $query->getResultSet();
$queryString=“开始匹配=节点({nodeId})”$match->getId(),'name'=>$feed['referer_name']);
$result=$query->getResultSet();
有人能帮忙吗 目前可能满足您发布的查询的模型之一:
(Team)-[:PLAYS]->(Match)
(Match)-[:HAS_REFEREE]->(Referee)
(Match)-[:PLAYED_IN]->(City)
PLAYS关系可以有一个属性来指示该队是否为主队。您还可以在PLAYS关系上有一个属性来指示该队是否获胜。或者,如果获胜是你所寻找的一个重要部分,你可以创建一个额外的关系,例如(团队)-[:WON]->(比赛)
(不过你需要考虑如何建立平局模型。两支球队在一场比赛中都没有获胜关系可能意味着平局)
我认为根本不需要根节点。如果您想找到所有比赛/城市/裁判等,您可以对其进行索引目前似乎满足您发布的查询的可能模型之一:
(Team)-[:PLAYS]->(Match)
(Match)-[:HAS_REFEREE]->(Referee)
(Match)-[:PLAYED_IN]->(City)
PLAYS关系可以有一个属性来指示该队是否为主队。您还可以在PLAYS关系上有一个属性来指示该队是否获胜。或者,如果获胜是你所寻找的一个重要部分,你可以创建一个额外的关系,例如(团队)-[:WON]->(比赛)
(不过你需要考虑如何建立平局模型。两支球队在一场比赛中都没有获胜关系可能意味着平局)
我认为根本不需要根节点。如果您想查找所有比赛/城市/裁判等,您可以对其进行索引非常感谢。这有助于我树立榜样。我很快会在这里发回代码。非常感谢。这有助于我树立榜样。我很快会在这里发回代码。