我有两种类型的对象说 实体和类型。
每个实体只能属于一种类型。
所以
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)
我需要的是提供架构级别的约束。
从 Neo4j 3.1 开始,唯一支持的模式约束是:
- 标签/属性的唯一性约束
- 标签/属性的存在约束(仅限企业版)
- 关系类型/属性的存在约束(仅限企业版)
所需限制没有架构支持。
也就是说,您必须自己编写一些解决方法,例如通过添加 TransactionEventHandler 来强制实施您的要求。