gpt4 book ai didi

internationalization - 在 Neo4j 中存储多语言属性值的最佳实践?

转载 作者:行者123 更新时间:2023-12-03 20:42:09 24 4
gpt4 key购买 nike

我在 Neo4j 图形数据库中存储了一些节点,每个节点都有可以本地化为各种语言的属性值。是否有存储多语言属性值的最佳实践?

最佳答案

有几种方法可以对此进行建模。哪一个是最好的,取决于您的用例以及您希望使用 i18n 化属性的方式。我在下面画了一些例子,假设 n是一个应该有它的节点productNamecolor属性(property)翻译成各种语言。下面将使用类似 Cypher 的符号。

1) 用节点存储所有翻译。

CREATE (n {
productName:'default', color:'default',
productName_en:'engl.prod.name', color_en:'red',
productName_fr:'fr.prod.name', color_fr:'rouge',
})

您应用命名约定并使用 <propertyName>_<lang>对于 i18n 化的变体。
这种方法很简单,而不是真正的图形。

2) 每个语言和实体都有一个子节点,按关系类型指示语言:
CREATE (n {productName:'default', color:'default'}),
(n)-[:TRANSLATION_EN]->({productName: 'engl.prod.name', color:'red'}),
(n)-[:TRANSLATION_FR]->({productName: 'fr.prod.name', color:'rouge'})

因此,每种语言都有 1 个额外的节点和 1 个额外的 rel。在 Neo4j 2.0 中,您可能还使用指示语言的标签来指示翻译节点。通过这种方式,您可以轻松提取 xyz 语言中所有文本的列表。

3) 与 2) 类似,但使用通用关系类型 TRANSLATION上面有一个属性,指示语言。

还有更多的方法,例如理论上你也可以使用数组属性。
如前所述,没有 Elixir ,这取决于您的用例和要求。

关于internationalization - 在 Neo4j 中存储多语言属性值的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19924253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com