Java 非关系数据库的多语言网站

Java 非关系数据库的多语言网站,java,database-design,nosql,multilingual,bigtable,Java,Database Design,Nosql,Multilingual,Bigtable,有人能为多语言网站提供如何组织非关系数据库的建议吗?这里有一些关于MySQL的问题,“多语言”不仅是静态的(我们可以用框架实现),而且是动态内容。实际上,我们不知道用户希望创建多少种语言的内容:可以为对象创建“名称”,并根据需要将其翻译成多种语言 我们的团队在GAE上使用JavaSpring框架和Objectify。但我认为这并不重要——我们正在使用什么工具 或者,nosql数据库实际上并不是执行此类任务的合适工具 p、 很抱歉英语不好如果我没有听错,我认为这是我找到的多语言数据库的最佳方式(我

有人能为多语言网站提供如何组织非关系数据库的建议吗?这里有一些关于MySQL的问题,“多语言”不仅是静态的(我们可以用框架实现),而且是动态内容。实际上,我们不知道用户希望创建多少种语言的内容:可以为对象创建“名称”,并根据需要将其翻译成多种语言

我们的团队在GAE上使用JavaSpring框架和Objectify。但我认为这并不重要——我们正在使用什么工具

或者,nosql数据库实际上并不是执行此类任务的合适工具


p、 很抱歉英语不好

如果我没有听错,我认为这是我找到的多语言数据库的最佳方式(我使用MySQL,但情况是一样的):

  • 首先,应该避免在主表上存储长字符串(例如名称、描述)。您可以将它们存储在不同的表中。你的桌子会更快

  • 您可以对所有对象(如产品、订单、装运等)使用转换表

翻译表: obj_id实际上引用了product_id,并且可以与product_id关联。我更喜欢obj_id,因为我很容易控制所有的翻译表,而不需要记住order_id、product_id等


希望这能有所帮助。

您能举例说明数据库中的条目是什么样子的吗?我知道问题的重点是找出如何做,但用一个基本的例子来理解可能会有所帮助。例如,实体
事件
可能有
id
logoUrl
startDate
endDate
,这些字段不需要本地化,还有
name
description
,如果活动是国际性的,该用户可以翻译成英语、西班牙语、俄语。当显示这些信息时,您不仅需要翻译内容,还需要翻译“名称”和“描述”等词,对吗?是的,但我们现在用Spring Internationalization做的就是这样。我们翻译静态信息,如字段名称+日期等。但我们现在想让用户将其内容翻译成他想要的多种语言。这里没有任何特定于非关系数据库的内容。是的,这是实现这一点的一种方法。但这是“RDB方式”。但是键值存储是不同的。例如,我们也可以在Google BigTable中实现这一点,但这可能是更好的选择
translation_id    obj_id     lang_code    field        translation
------------------------------------------------------------------------
      1              2          EN        name      Million Dollar Baby
      2              2          TR        name      Milyonluk Bebek