2012-03-15 27 views
0

我有一個包含兩列ID | Material的表格,我需要將英文翻譯添加到材質列。如果我沒有唯一的ID我想我可以使用這個答案:https://stackoverflow.com/a/219871/536610使用唯一標識本地化現有表格

但它不會使用唯一的ID(據我所知)。是添加一個名爲EngMaterial的新列的最佳解決方案,並在那裏添加英文翻譯,還是有可能以.NET更好地解決此問題?

+0

您可以在解決方案中的App_GlobalResources文件夾中創建資源文件,並將本地化字符串的鍵保存在表中。 – QQping 2012-03-15 15:35:23

回答

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>