使用唯一ID本地化现有表

时间:2012-03-15 15:32:13

标签: .net sql localization

我有一个包含两列ID | Material的表格,我需要在材料列中添加英文翻译。如果我没有唯一ID,我想我可以使用这个答案:https://stackoverflow.com/a/219871/536610

但它不适用于唯一的ID(据我所知)。是添加名为EngMaterial的新列并在那里添加英文翻译的最佳解决方案,还是可以通过.NET中的本地化更好地解决这个问题?

1 个答案:

答案 0 :(得分:1)

完全在数据库中的解决方案是添加另一个表。添加每个语言的列是一个(差)临时解决方案 - 它不能很好地扩展,并且需要动态sql来选择列(如果语言代码可用,可能会导致错误,但是没有适当命名的列)。

按原样保留现有表格。它为引用完整性提供了一个很好的主键表,如果找不到合适的语言,它还允许轻松存储默认值。然后添加另一个表格:

Material_Localizations
========================
materialId  -- fk reference to Material.id
languageId  -- fk reference to Language.id
regionId  -- optional - used to differentiate where the particular language is 
          -- being spoken: some places use different spellings or whole words
materialDescription  -- varchar, localized text

primary (unique) key is <materialId, languageId, regionId>