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]->(比赛)
    (不过你需要考虑如何建立平局模型。两支球队在一场比赛中都没有获胜关系可能意味着平局)

  • 特定裁判的所有比赛:从裁判开始,穿过比赛到达各个城市。您可以索引裁判的某些独特属性,以便能够快速查找他

  • 裁判员工作且主队获胜的所有比赛:从裁判员开始,查找其所有比赛,筛选获胜关系/属性和主队属性

  • 主队获胜次数最多的所有裁判:同上,从所有裁判开始

  • 城市最活跃的裁判:从城市开始,查找所有比赛及其裁判

  • 根据你想回答的更多问题(特别是主队属性、输赢关系或属性等),你可能会有所改变


    我认为根本不需要根节点。如果您想查找所有比赛/城市/裁判等,您可以对其进行索引

    非常感谢。这有助于我树立榜样。我很快会在这里发回代码。非常感谢。这有助于我树立榜样。我很快会在这里发回代码。