每当我想使用多语言应用程序使用例如数据模型时,我发现自己正在努力处理数据模型。谷歌地图。例如,当用户搜索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
但我总是发现这需要多少表格,并且想知道你们是否有更好的替代方法来存储多语言数据并保持添加/删除支持语言的灵活性。