我們想擴展我們的數據庫來創建多語言支持,但我們不確定如何執行此操作。 我們的數據庫看起來是這樣的:添加信息,xml列或新表?
ID - 名稱 - 說明 - (很多不相關的列)
選項1是一個XML列添加到表,在這個專欄中,我們可以存儲我們需要的信息像這樣:
<translation>
<language value=’en’>
<Name value=’’>
<Description value=’’>
</language>
<language value=’fr’>
<Name value=’’>
<Description value=’’>
</language>
</translation>
這樣做的好處是,當我刪除行時,我也刪除了翻譯。
選項2是添加一個額外的表,很容易創建一個表來存儲信息,但它需要內部連接時獲取信息和更多的努力刪除行時刪除原來的行。
這種情況下的首選選項是什麼?或者還有其他好的解決方案嗎?
如果您有另一個表,如果您使用外鍵並且引用操作觸發了'ON DELETE CASCADE',當您從主表中刪除行時,它將刪除行附加表。這可能是一個太主觀的問題,但是我會說使用一個額外的表,這是關係數據庫的全部要點,您可以在附加表上使用索引,約束等,但不能在XML列上使用。如果您需要XML格式的數據,將其轉換爲XML並不困難。 – GarethD 2013-02-12 15:58:13
您也可以使用'NVARCHAR2'數據類型將多語言數據存儲在單個列中 – Incognito 2013-02-12 16:08:16