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

问题描述 投票:0回答:1

我正在开发多语言网站。

例如,1 lang 的数据库表

pages
看起来像这样

enter image description here

现在,我对翻译有两个想法:

  1. 要使用默认语言(英语)的所有表格并创建第二个表格 -

    translations
    仅在需要时使用它。

  2. 或者将诸如 title_ru、title_en...之类的列添加到现有表中。

哪种方式更快、更有效?请解释你的想法(为什么你这么想)

mysql translation
1个回答
4
投票

我不会选择你们的任何一个解决方案。

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

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

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

然后要在运行时切换到不同的语言,所涉及的只是在代码中将语言 ID 从 1 设置为 2,并且所有查询都将继续工作。

© www.soinside.com 2019 - 2024. All rights reserved.