Neo4J:强制关系受到限制

时间:2016-12-30 09:13:01

标签: 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)

应该可以工作,但是跟随一个应该给我错误(每个实体应该只与一个EType链接)

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

我需要的是在架构级别提供约束。

1 个答案:

答案 0 :(得分:0)

从Neo4j 3.1开始,唯一支持的架构约束是:

  • 标签/属性的唯一性约束
  • 标签/属性的存在限制(仅限企业版)
  • 关系类型/属性的存在约束(仅限企业版)

没有架构支持您想要的限制。

也就是说,有workarounds you'll have to code yourself,例如通过添加TransactionEventHandler来强制执行您的要求。