Neo4j约束值,标签或属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Neo4j约束值,标签或属性相关的知识,希望对你有一定的参考价值。
我来自RDBMS背景,并试图围绕属性图(尤其是neo4j)。令我烦恼的最重要的事情似乎并不是我可以约束的东西
- 节点标签
没有什么可以阻止
:person
,:Pperson
或:PURSONNN
- 关系 没有什么可以确保你没有添加边缘应用程序不知道如何使用。例如,也许有一个“CanViewAccount”关系,但其他人出现并天真地构建一个边缘“CanView”
- 没有什么可以约束节点或边的属性。
我可能希望有一个“UserType”可以是
:Person
,它应该只是少数预定义选项中的一个。
这是RDBMS 101的东西(参考完整性约束),但我不确定我是否以及如何在Neo4j中做类似的事情。
答案
您应该知道Neo4j的模式较少,这就是为什么您可以完成列出的所有内容。
另一方面,Neo4j有一些限制,如:
- 对标签属性的唯一性约束。例如,属性
email
在节点:Person
上应该是唯一的 - 对标签的属性的require约束。例如,属性
email
必须存在于节点:Person
上 - 对关系类型的属性的require约束。例如,属性
since
必须存在于关系:KNOWS
上
在EE版本中,您可以在一个或多个字段上创建主键(称为node key
)
以上是关于Neo4j约束值,标签或属性的主要内容,如果未能解决你的问题,请参考以下文章