繁体   English   中英

Neo4j是否适当使用标签和约束?

[英]Is this an appropriate use of labels and constraints in Neo4j?

我正在使用Neo4j 2.1.1,该服务器以服务器模式运行,并且可以通过Java的REST API访问。 我上次使用1.8,所以有点生疏,正在尝试找出新功能...

我正在构建Twitter用户图,以了解谁关注谁。 每个节点将具有一个“ userid”属性,该属性必须唯一。 用户恰好属于A,B或C这三个类别之一。我可能会查询诸如“向我显示C型用户跟随A型用户”之类的问题。

我最初的计划是创建标记为A,B和C的节点,并为每种类型的用户插入“ member_of”关系-然后我阅读了有关标签的信息,乍一看似乎很成功,但是后来我不确定-我将为A,B和C创建标签,但我希望userid在所有类别中都是唯一的,而不仅仅是特定类型的用户。

标签是我的答案吗? 我的“元节点”? 我觉得我想念什么。

是。 标签是您的答案。 您将为每个用户创建一个单独的节点,并且每个节点将具有自己的标签(一个节点也可以具有多个标签)。 因此,从本质上讲,您正在为每个节点标记一个标签。 您没有在标签层下创建一些节点。 因此,您的用户ID将在全球范围内保持唯一。 希望能帮助到你!

试试这些

// create a unique constraint
CREATE CONSTRAINT ON (u:User) ASSERT u.userid IS UNIQUE;

// create a user

CREATE (u:User:A {userid:124});

// get or create a user
MERGE (u:User {userid:124}) ON CREATE SET u:A, u.created = timestamp();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM