免责声明:我是图形数据建模的初学者,我们将不胜感激任何帮助,提示或指导。原谅我缺乏知识。
一万个专长的想法是能够将语言从一个语言翻译成另一个质量等级 。
我有以下域名模型:
activity
)language_from
)language_to
)level
)我已对下图进行建模,以允许用户要求从质量级别为Z的X到Y的转换。
现在让我们说用户想要从en-us
翻译成de-de
。两个节点之间没有链接,因为由于域名原因,业务不允许此路径。
然而,可以通过en-us
- > fr-fr
然后fr-fr
- > de-de
来实现此类翻译。
我的问题是:
任何让我走上正确轨道的提示都会受到赞赏。
答案 0 :(得分:1)
我认为您可以更直接的方式为数据建模。
您可以使用Language
个与TRANSLATE
关系直接连接的level
个节点作为关系的属性。它更简单,直接映射到您的域问题,您不需要其他节点进行查询。
(Language {name: 'de-de'})-[:TRANSLATE {level: 7}]->(Language {name: 'fr-fr'})
可变长度查询通过多种语言查找翻译:
MATCH path=(lang:Languag {name: 'de-de'})-[:TRANSLATE*1..3]-(other_lang:Language {name: 'en-us'})
RETURN nodes(path)
在这里你也可以过滤某个级别:
MATCH path=(lang:Languag {name: 'de-de'})-[:TRANSLATE*1..3]-(other_lang:Language {name: 'en-us'})
WHERE all(x IN relationships(path) WHERE x.level > 5)
RETURN nodes(path)