强制从节点标签X到节点标签Y的关系具有特定属性

时间:2019-03-28 03:43:47

标签: database graph neo4j cypher schema

我知道,使用Neo4j Enterprise中可用的“关系属性存在约束”,我可以强制给定标签的关系具有某些属性,例如:

(标签“ LIKED”的关系始终具有“ day”属性)

CREATE CONSTRAINT ON ()-[like:LIKED]-() ASSERT exists(like.day)

但是是否可以强制从节点标签X到节点标签Y的关系具有特定属性?我想做的一个例子是:

(标签“ BOUGHT”与节点标签“ Person”到节点“ /”之间的关系始终具有“ day”属性)

CREATE CONSTRAINT ON (p:Person)-[bo:BOUGHT]-(b:Book) ASSERT exists(b.day)

但这不是有效的Cypher命令。是否有办法在模式级别实现此效果,或者我需要在应用程序层中实现它?谢谢。

1 个答案:

答案 0 :(得分:0)

不幸的是,目前无法在架构级别实现这种效果。

您需要弄清楚如何在应用程序层中实现它。

  

如果此type()关系与其他Approach 1: def calc_length(s): if type(s) == int: print("Only Strings Have Lengths!!! Please enter a string!!") elif type(s) == float: print("Only Strings Have Lengths!!! Please enter a string!!") else: print(len(s)) calc_length(input("Please enter a String: ")) --------------------------------------------------------------------- Approach 2: def calc_length(s): if type(s) != str: print("Only Strings Have Lengths!!! Please enter a string!!") else: print(len(s)) calc_length(input("Please enter a String: ")) 不同   关系(即其他节点标签对之间的LIKED关系)   然后您可以命名其他名称并创建“ relationship属性   存在约束”