1

几天来,我一直在研究多语言和递归数据库设计。我发现以下文章很有趣:http ://www.gsdesign.ro/blog/multilanguage-database-design-approach/并喜欢第 4 种解决方案Coupled Translation Table Approach。但是我很困惑,因为我不明白这个案子;id我看到桌子上只有一列pages,我想我需要id先在pages桌子上增加价值。之后,我必须选择id值并在pages_translation表格上添加数据。

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

你能给我一些关于你正在使用的多语言和递归数据库设计方法的想法吗?

耦合翻译表法

表语言

  • 标识(整数)
  • 名称(varchar)

表页

  • 标识(整数)

表 pages_translation

  • 标识(整数)
  • page_id (int)
  • language_id (int)
  • 标题(文字)
  • 内容(文字)
4

1 回答 1

1

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

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

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

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

  • 难以维护。尽管这对于 2-3 种语言来说是一种简单的方法,但当您有很多列或多种语言时,它会成为真正的拖累

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

  • 很难添加新语言

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

于 2012-08-26T20:34:44.633 回答