假设我有表:数据库设计:如何支持多语种网站?
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