多语种数据库设计:耦合翻译表方法

时间:2012-06-24 13:24:56

标签: database-design multilingual

我几天来一直在研究多语言和递归数据库设计。我发现以下文章很有意思:http://www.gsdesign.ro/blog/multilanguage-database-design-approach/并且喜欢第4种解决方案耦合翻译表方法。但由于我不理解这个案子,我很困惑;我看到id表上只有一列pages,我认为我需要首先在id表上增加pages值。之后,我必须选择id值并在pages_translation表上添加数据。

问题是:我如何知道哪个页面对应id的值?我该怎么办?

您能否介绍一下您正在使用的多语言和递归数据库设计方法?

耦合翻译表方法

表格语言

  • id(int)
  • name(varchar)

表格页面

  • id(int)

table pages_translation

  • id(int)
  • page_id(int)
  • language_id(int)
  • title(text)
  • 内容(文字)

1 个答案:

答案 0 :(得分:1)

我正在使用文章中提出的第一种方法。我不能完全理解第三和第四种方法,可能是因为我不是英语,也可能是因为我没有足够的知识。

关于缺点以及我如何解决它们:

  • 您需要根据语言
  • 构建手表所使用的列

我不确定这实际意味着什么......

  • 难以维持。虽然对于2-3种语言来说这是一种简单的方法,但当你有很多专栏或很多语言时,它会成为一种真正的拖累。

如果你使用phpMyAdmin或类似的话,这是事实。我刚刚创建了一个解决方案 - 仅限受信任的人 - 这可以帮助我或者说受信任的翻译人员编辑许多和任何文本字符串。它不完整,我停止开发它,因为它“工作”,我的页面需要在其他更重要的领域做很多工作。正如你所看到的,我只能选择我想要的cols而不是同时选择所有cols,也可以从全文字段改为小输入(长字符串或短字符串)。其他有助于解决下一个劣势的脚本。

  • 很难添加新语言

我还创建了另一个脚本,帮助按字符串翻译页面字符串,供最终用户协作..