在 MySQL 数据库中存储翻译的最佳方式

Tur*_*Ali 5 mysql translation

我正在开发多语言网站。

例如,pages1 lang 的数据库表看起来像这样

在此输入图像描述

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

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

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

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

car*_*pii 4

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

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

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

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

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