假設我有表:數據庫設計:如何支持多語種網站?
TABLE: product
=================================================================
| product_id | name | description |
=================================================================
| 1 | Widget 1 | Really nice widget. Buy it now! |
-----------------------------------------------------------------
如果我想提供多語言支持,什麼是應該做的是最好的方法?
可能的解決方案:
- 添加 「語言」 欄上表;這將表明特定記錄的語言。 (我不認爲這是我的選擇,因爲其他表將使用product.product_id作爲其FK。)
- 刪除產品表中的所有可翻譯列(在上例中,product.name和product.description)並把它放在一個帶有「語言」欄的單獨表格中。該新表將使用product.product_id作爲FK。 (我的應用程序的第一個版本中我不會支持多種語言,這意味着我必須額外加入JOIN才能獲得最初支持的語言的值)。
- 其他的東西我沒有,考慮?
解決方案2還意味着您必須確保每個產品都有每種語言的說明記錄 - 否則,如果您使用內部聯接,產品可能會消失。 – phoog 2011-04-05 22:35:46
左連接將允許產品仍然出現。儘管如果您沒有翻譯,您可能不希望產品出現。這一切都取決於用例。 – 2011-04-05 22:38:06
如果產品是您需要翻譯的唯一表格,則選項2很好。否則,您需要爲需要翻譯的每個實體提供一個新的翻譯表。 – 2011-04-05 22:43:37