有关多语言数据存储的建议

时间:2016-03-01 07:44:54

标签: php mysql database multilingual

每当我想使用多语言应用程序使用例如数据模型时,我发现自己正在努力处理数据模型。谷歌地图。例如,当用户搜索Berlin时,用户的语言设置为英语和德语(可能还有更多语言),但用荷兰语Berlin转换为Berlijn。同样适用于Munich,其转换为荷兰语中的München。当然,这只是许多现实世界情况的两个例子。在此图中,酒店位置的存储用于演示。因此,基本上大多数时候我最终会使用如下模式:

hotel
PK  id 
    other_properties

hotel_location
FK  hotel_id
FK  location_id

location
PK  id

location_translation
PK  id
FK  language_id
FK  location_id
    value

language
PK  id
    native_name
    system_name

填充如下:

    HOTEL
    id      name                no_rooms    ...
    -------------------------------------------
    1       Radison Blu Hotel   16

    HOTEL_LOCATION
    hotel_id   location_id
    --------------------------------------------
    1          1

    LOCATION
    id
    --
    1

    LOCATION_TRANSLATION
    id      language_id     location_id     value
    ---------------------------------------------
    1       1               1               Berlin
    2       2               1               Berlijn
    3       3               1               Berlin

    LANGUAGE
    id      native_name     system_name
    -----------------------------------
    1       English         English
    2       Nederlands      Dutch
    3       Deutsch         German

但我总是发现这需要多少表格,并且想知道你们是否有更好的替代方法来存储多语言数据并保持添加/删除支持语言的灵活性。

0 个答案:

没有答案