【问题标题】:Create a unique node and relationship创建唯一的节点和关系
【发布时间】:2016-09-28 09:55:42
【问题描述】:

我正在尝试在具有关系的节点上创建唯一属性。问题是唯一属性仅对于标签“B”是唯一的,我需要它对于标签“A”也是唯一的。是否可以跨多个标签设置唯一约束?

MATCH (user:A { userId: '57e3c97c6a430242328878ec' })
CREATE UNIQUE (user)-[:KNOWS]-(telephone:B{telephone: '+447735150512'})
RETURN telephone

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

    属性在标签 A 和 B 的节点上应该是唯一的(可能更多?)

    目前不支持此功能,但有一种解决方法,但需要您进行一些维护。

    节点可以有多个标签。因此,如果您创建一个额外应用于多个其他标签的节点的标签(应用于具有标签 A 和 B 的节点的超标签 C),您可以为该属性在 C 上创建唯一约束。您必须确保所有 A 和 B 节点都额外标有 C,但是当它到位时,您将无法创建具有以下属性的新 A 或 B 节点(额外标有 C)已在另一个 C 节点上使用。

    这种方法的缺点是,如果您创建了一个 A 或 B 节点,但忘记用 C 标记它,则不会强制执行唯一约束,因为这只发生在 C 节点上。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-27
    相关资源
    最近更新 更多