我有一个包含两列ID | Material
的表格,我需要在材料列中添加英文翻译。如果我没有唯一ID,我想我可以使用这个答案:https://stackoverflow.com/a/219871/536610
但它不适用于唯一的ID(据我所知)。是添加名为EngMaterial
的新列并在那里添加英文翻译的最佳解决方案,还是可以通过.NET中的本地化更好地解决这个问题?
答案 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>