假设我有一张桌子:
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
,但这是一个简单的键连接,因此不会对您的性能产生太大影响。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)