根据这种方法,默认语言是已经在第一个表中翻译了。如果用户不需要翻译,他不会与他们斗争。只需连接主表,这一切......用于翻译的MySQL结构
产品表(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
。与第一个解决方案一样,admin必须首先决定default_lang,但系统将能够将新的default_lang数据从转换表传输到主表(我不这么做)。
我觉得我的解决方案不够好。
对于DEFAULT_LANG问题,如果有或者没有改变结构(如果可能的话,不要改变结构 - 我喜欢它),你有更好的想法吗?
+ 1将'Go to hell'消息发给Admin。 – 2011-05-10 12:02:09