如何在数据库中保留多语言国家和城市

时间:2018-03-04 13:26:33

标签: database database-schema multilingual

我在两个不同的表格中有国家和城市数据库,例如:

国家/地区表

Countries
id    name
__    _______
1     Canada
2     Taiwan
...   .....
N     name

城市表

Cities
id     name         country_id
___    _________    __________
40     Washington   193
154    Taipei       2
...    ......       ....
N      name         county_id

问题在于它只有英文。所以我要用超过2种语言的城市和国家名称。我希望将所有翻译保留在一个表格中,以便以任何国家城市以不同语言表示相同的 ID 。我是否应该将表格修改为

两种语言的国家/地区表

Countries
id    name_en   name_kg
__    _______   _______
1     Canada    Канада
2     Taiwan    Тайвань
...   .....     .....
N     name_en   name_kg

两种语言的城市表

Cities
id     name_en      name_kg         country_id
___    _________    ________        __________
40     Washington   Вашингтон       193
154    Taipei       Тайпей          2
...    ......       ......          ....
N      name_en      name_kg         county_id

正如我所说,我可能需要两种以上语言的城市和国家。那么它是存储我的数据的正确方法,我在哪里可以获得这些数据?会对任何提议和想法感到高兴

1 个答案:

答案 0 :(得分:0)

您可以在两个表上添加基于ISO_639-1_codes的语言列。例如,如下所示。你可以在城市做类似的结构。然后在所有查询中,您需要知道并将语言代码放在where条件中(其中language =' EN')。希望这可以帮助。感谢。

id    name_en   language
__    _______   _______
1     Canada    EN
2     Taiwan    EN
1     加拿大    ZH
2     台灣      ZH

Language_encoding table:
id   code  ISO_lang_name Native_name
1    EN    English       English
2    ZH    Chinese       中文

参考:https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes