0

永远我一直在创建对象/元素的同一张表中进行翻译。
因此,例如,如果我处理帖子并且帖子的标题需要翻译,我会这样做 -> post_title_en, post_title_fr, post_title_nl
好吧,这是维护应用程序的非常糟糕的方式,您必须在代码中的很多东西中硬编码。

所以我现在正在写一个应用程序,我想打破这个坏习惯,像这样翻译。

如果我不知道我必须在表字段中保存什么样的数据长度,我将如何处理翻译?

我可以翻译成post_title通常会是女巫的翻译,并且我可以翻译成通常会是女巫varchar(255)的东西。我将如何用主要对象引用所有这些?post_contenttext

欢迎任何指点。谢谢。

4

2 回答 2

1

不幸的是 MySQL 数据库是示意图。但你可以做到这一点。

从版本 5.0.3 开始,如果表的ROW_FORMAT设置为“COMPACT”,NULL 值将永远不会使用数据库中的任何空间。所以我们可以建立这样的方案

i18n 计划

于 2012-11-07T06:35:30.987 回答
0

创建另一个包含如下内容的表:

  • post_id(posts表的外ke to id字段)
  • field_type(标题、内容等)
  • language_id(语言)
  • 值(字符串值)

所以不要在帖子表中放置任何受语言影响的值(您仍然可以放置帖子作者、日期和时间等)。

于 2012-11-07T04:47:48.813 回答