Neo4J:强制关系约束

问题描述:

我有两种类型的对象说 实体和类型。Neo4J:强制关系约束

每个实体只能是一个类型。

所以

Merge (M1:Entity {name:'m1'}) 
Merge (M2:Entity {name:'m2'}) 
Merge (T1:EType {name:'System'}) 
Merge (T2:EType {name:'User'}) 

然后

MERGE (M1)-[:typeOf]->(T1) 
MERGE (M2)-[:typeOf]->(T1) 

应该工作,但下面一个应该给我的错误(每一个实体应该只有一个VLAN时被链接)

MERGE (M1)-[:typeOf]->(T2) 

我需要在模式级别提供约束。

作为Neo4j的3.1的,唯一支持的模式约束是:上标签/属性

  • 唯一性约束上标签/属性
  • 存在性约束(企业版只)上关系式
  • 存在性约束/ property(仅限企业版)

对于您想要的限制没有模式支持。

也就是说,有workarounds you'll have to code yourself,比如通过添加一个TransactionEventHandler来执行你的需求。