在MySQL DB中存储翻译的最佳方法

时间:2011-12-24 11:50:35

标签: php mysql mysqli translation

我正在开发多语言网站。

例如,1 lang的数据库表pages看起来像

enter image description here

现在,我有两个关于翻译的想法:

  1. 要使用默认语言的所有表格 - 英语并创建第二个表格 - translations仅在需要时使用它。

  2. 或者将title_ru,title_en等列添加到现有表格中。

  3. 哪种更快,更有效?请解释你的想法(为什么你这样想)

1 个答案:

答案 0 :(得分:4)

我不会选择你的解决方案。

为每种语言创建新表并不是最佳选择,因为您必须根据选择的语言修改每个查询。此外,添加新语言的相当简单的任务应该是添加新的表模式并更新整个代码库。

同样,为每种语言添加新列也会遇到同样的问题。

为什么不只是有一个字典表,语言ID作为PK的一部分。 编写您的网站,根据当前语言ID(1 =英语,2 =俄语等)选择文本

然后在运行时切换到另一种语言,所有涉及的是在代码中将语言ID从1设置为2,并且所有查询都将继续有效。