0
我有一個包含兩列ID | Material
的表格,我需要將英文翻譯添加到材質列。如果我沒有唯一的ID我想我可以使用這個答案:https://stackoverflow.com/a/219871/536610使用唯一標識本地化現有表格
但它不會使用唯一的ID(據我所知)。是添加一個名爲EngMaterial
的新列的最佳解決方案,並在那裏添加英文翻譯,還是有可能以.NET更好地解決此問題?
我有一個包含兩列ID | Material
的表格,我需要將英文翻譯添加到材質列。如果我沒有唯一的ID我想我可以使用這個答案:https://stackoverflow.com/a/219871/536610使用唯一標識本地化現有表格
但它不會使用唯一的ID(據我所知)。是添加一個名爲EngMaterial
的新列的最佳解決方案,並在那裏添加英文翻譯,還是有可能以.NET更好地解決此問題?
完全在數據庫中的解決方案是添加另一個表。每種語言添加一個列是一個(糟糕的)臨時解決方案 - 它不能很好地擴展,並且需要動態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>
您可以在解決方案中的App_GlobalResources文件夾中創建資源文件,並將本地化字符串的鍵保存在表中。 – QQping 2012-03-15 15:35:23