2016-12-30 133 views
0

我有兩種類型的對象說 實體和類型。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) 

我需要在模式級別提供約束。

回答

0

作爲Neo4j的3.1的,唯一支持的模式約束是:上標籤/屬性

  • 唯一性約束上標籤/屬性
  • 存在性約束(企業版只)上關係式
  • 存在性約束/ property(僅限企業版)

對於您想要的限制沒有模式支持。

也就是說,有workarounds you'll have to code yourself,比如通過添加一個TransactionEventHandler來執行你的需求。