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来执行你的需求。