我们目前使用的转换表如下所示:
| id | type | name | lang | value |
|-----+-------+----------+-------+----------|
| 853 | text | question | en | question |
| 854 | text | question | nl | vraag |
因此,对于另一种语言的每个额外翻译,我们都必须添加另一行
我们正在考虑将其更改为一个表,其中每个国家/地区值都有一列(因此您只需要添加 1 行)。
所以它看起来像这样:
| id | type | name | lang | nl | en |
|-----+-------+----------+-------+---------+------------+
| 853 | text | question | en | vraag | question |
- 与第一种方法相比,第二种方法有什么缺点吗? 第一?
- 您建议如何创建一个翻译表,例如 这个?
最佳答案
为什么不连接两个表,主表包含 id,type,name
字段并嵌套 id,master_id,lang,value
。对于给定的示例,如下所示:
ID TYPE NAME
1 text question
ID MASTER_ID LANG TRANSLATION
1 1 en question
2 1 nl vraag
一种语言的翻译集由 SQL 查询给出:
SELECT * FROM `nested` WHERE `lang` = 'nl'
-- vraag
-- .....
给定术语的翻译(例如问题
,具有id=1
):
SELECT * FROM `nested` WHERE `master_id` = 1 AND `lang` = 'nl'
-- vraag
关于php - 制作翻译表的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24805597/