根据这种方法,默认语言是已经翻译了在第一个表中。如果用户不需要翻译,他就不会为之烦恼。只需连接主表,仅此而已...
产品表(InnoDB):
Obj_id(PK) name desc
--------- ------------------- ------------------
1 Million Dollar Baby Short description is...
2 Music Album Another explanation...
翻译表(InnoDB)
trans_id (PK) Obj_id (FK) lang field trans
-------------- ----------- ------ -------- ---------------------
22 1 TR name Milyonluk Bebek
23 1 BA name Djevojka od milijun...
24 1 TR desc Kisa açiklama burada
25 1 BA desc Kratki opis je ovdje
26 2 BA name Glazba albuma
但是当管理员想要更改默认语言时就会出现问题。我有两个选择来解决这个问题:
管理员必须在项目开始时决定default_lang,如果将来他仍然想更改default_lang,程序会说:Go to hell
.
与第一个解决方案一样,管理员必须首先决定default_lang,但系统将能够将新的default_lang数据从转换表传输到主表(我实际上不这样做)。
我认为我的解决方案还不够好。
您对更改结构或不更改结构的 DEFAULT_LANG 问题有更好的了解吗(如果可能,请不要更改结构 - 我喜欢它)?
我想知道每种语言都有一个表是否会更好。这样您只需切换正在使用的表即可。
TRANSLATIONS_TR
TRANSLATIONS_EN
TRANSLATIONS_FR
TRANSLATIONS_BR
然后,在用户显示例程中,您决定在显示翻译文本时查询哪个表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)