假设我有一张 table :
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。
此选项将最大限度地减少您的第一个版本的工作,并将减少未更改的列之间的重复。
它确实需要一个额外的 JOIN
,但它是一个简单的键连接,因此不会对您的性能产生太大影响。
关于mysql - 数据库设计 : how to support multi-lingual site?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5559342/