通常在主表中,我们有一个name列,它通常是英文的。但是,如果我们使用不同的语言,那么最好的列命名约定是什么。en_name比name_en好吗?(请记住,我将使用JPA和实体)。现在,我需要下面的专栏文章:
en_name。ar_name。fr_name。de_name代表德语。
另外,使用两个字母ISO 639-1代码或三个字母ISO 639-2代码更好?发布于 2018-06-07 21:47:32
这取决于你需要什么。如果您只需要一个单独的列来存储在DB名称翻译中,我建议使用name_de,name_en .,但这只是我的首选,很容易阅读和理解列的用途。
但是考虑一下过滤(搜索)。如果在同一表中预先加上附加列,则需要在查询(存储过程)中添加某种开关,以搜索特定语言的名称--对于英语,您需要使用name_en、德语- name_de进行搜索。因此,我可以推荐带有单独表的解决方案,以便使用id、[master_table]_id、language_code和text (或name)列进行本地化。
例如,有一个表item,其中包含id和name列。我将创建包含id、item_id、language_code和text列的表language_code。因此,对于表item中的item_localization中的行(1,"name"),将是(1,1,"en","name-en"),(1,2,"de","name-de")。
我准备把它存储在主表中,英文名称也复制在本地化表中。在这种情况下,很容易通过本地化的名称进行过滤,比如
select item.*
from item
join item_localization on item_localization.item_id = item.id
where item_localization.language_code = "de" and item_localization.text like "%some_text%"但这只是我的经验和想法。
https://stackoverflow.com/questions/50258795
复制相似问题