我要解决下一个问题:
我有3个节点:
(n:Node)-[r:HAS_ATTRIBUTE]->(a:Attr {name ="xxxx"}) ->(t:Type)
所有a:Attr
个节点都有:翻译关联:
(a) -> [:_HAS_TRANSLATION] -> (tr1:Translation {name : "yyyy", lang ="fr"})
(a) -> [:_HAS_TRANSLATION] -> (tr2:Translation {name : "kkkk", lang ="de"})
现在,我想使用关系模拟相同的事物:
(n:Node)-[r:HAS_ATTRIBUTE {name ="xxxx"}]->(t:Type)
如何向HAS_ATTRIBUTE
名称属性添加翻译,当然不向_HAS_ATTRIBUTE
添加新的n:Node
?
我应该在关系中有这样的关系......
答案 0 :(得分:1)
希望我能理解你的问题。
考虑一个中间节点,例如
(n:Node)-[:HAS_ATTRIBUTE]->(attr:Attribute {name: "X")),
(attr)-[:HAS_TRANSLATION]->(tr1:Translation),
(attr)-[:HAS_TYPE]->(t:Type)
......或类似的东西。请注意" attr"将是新的中间节点(显然,您可以随意命名关系)。
如果您需要更具体(例如属性的实例),您可以随时更换" attr"与#34; specificAttr"并且有#34; attr"指向" attr"。
中间节点是解决这类建模问题的好方法,您需要更充分地限定关系。
答案 1 :(得分:0)
如果我理解正确你想要只有2个节点和一个关系,对吗?
要实现这一目标,您只需执行
即可(n:Node)-[r:HAS_ATTRIBUTE]->
(a:Attr {name ="xxxx", lang_fr="yyyy", lang_de="zzzz"})->
(t:Type)