用于翻译的MySQL结构

bey*_*ski 5 mysql database multilingual

根据这种方法,默认语言已经在第一个表中翻译.如果用户不需要翻译,他就不会挣扎.只需连接主表,这就是全部...

产品表(InnoDB):

 Obj_id(PK)             name                    desc
 ---------      -------------------     ------------------
     1          Million Dollar Baby    Short description is...
     2          Music Album            Another explanation...
Run Code Online (Sandbox Code Playgroud)

翻译表(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
Run Code Online (Sandbox Code Playgroud)

但是当管理员想要更改默认语言时会出现问题.我有两个选择来解决这个问题:

  1. 管理员必须在项目开始时决定default_lang,如果他以后仍想更改default_lang,程序会说:Go to hell.

  2. 像第一个解决方案一样,admin必须首先决定default_lang,但是系统将能够将新的default_lang数据从转换表传输到主表(我实际上并没有这样做).

我认为我的解决方案不够好.

你是否更好地了解DEFAULT_LANG问题,无论是否改变结构(如果可能的话,不要改变结构 - 我喜欢它)?