Neo4j约束值,标签或属性

问题描述 投票:0回答:1

我来自RDBMS背景,并试图围绕属性图(尤其是neo4j)。令我烦恼的最重要的事情似乎并不是我可以约束的东西

  • 节点标签 没有什么可以阻止:person:Pperson:PURSONNN
  • 关系 没有什么可以确保你没有添加边缘应用程序不知道如何使用。例如,也许有一个“CanViewAccount”关系,但其他人出现并天真地构建一个边缘“CanView”
  • 没有什么可以约束节点或边的属性。 我可能希望有一个“UserType”可以是:Person,它应该只是少数预定义选项中的一个。

这是RDBMS 101的东西(参考完整性约束),但我不确定我是否以及如何在Neo4j中做类似的事情。

database-design neo4j constraints data-modeling
1个回答
1
投票

您应该知道Neo4j的模式较少,这就是为什么您可以完成列出的所有内容。

另一方面,Neo4j有一些限制,如:

  • 对标签属性的唯一性约束。例如,属性email在节点:Person上应该是唯一的
  • 对标签的属性的require约束。例如,属性email必须存在于节点:Person
  • 对关系类型的属性的require约束。例如,属性since必须存在于关系:KNOWS

在EE版本中,您可以在一个或多个字段上创建主键(称为node key

© www.soinside.com 2019 - 2024. All rights reserved.