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



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

国家/地区表

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。我是否必须将我的表修改成这个

2种语言的国家/地区表

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

2种语言的城市表

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

所以正如我所说,我可能需要 2 种以上语言的城市和国家。那么,这是存储数据的正确方法吗,我在哪里可以获得这些数据?将很高兴任何报价和想法

您可以在两个表上添加基于 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

最新更新