我正在尝试设计一些表来存储一些数据,这些数据必须在以后转换为不同的语言。任何人都可以为此提供一些“最佳实践”或指南吗?
由于
答案 0 :(得分:14)
假设您有一个如下所示的产品表:
Products
----------
id
price
Products_Translations
----------------------
product_id
locale
name
description
然后你加入product_id = product.id和locale ='en-US'
当然这对性能有影响,因为您现在需要一个连接来获取名称和描述,但它稍后允许任意数量的语言环境。
答案 1 :(得分:0)
我认为有关你正在做的事情的更多信息会有所帮助。你能给出一些数据样本吗?动态是什么意思?随着时间的推移会插入大量数据,对数据进行大量更改,或者数据只需要在一小段时间内可用。
答案 2 :(得分:0)
通常,您可能应该查看具有常见非本地化数据的父级,以及包含本地化数据和语言键的子表。如果通过动态,你的意思是它经常变化,你可能想看一下使用触发器和类似'translationRequired'标志的东西来标记在做出改变之后需要翻译的东西。
答案 3 :(得分:0)
您能描述一下'动态数据'的性质吗?
实现这一目标的一种方法是拥有3个不同的表:
[1, English], [2, Spanish]
[1, 'Data1'], [2, 'Data2']
So: [Data_Language, Data_Definition, Language, Translation] [1, 1, 1, 'Red'] [2, 1, 2, 'Rojo'] [3, 2, 1, 'Green'] [4, 2, 2, 'Verde'] etc ...
输入动态数据后,创建默认的“英语”记录,然后随意翻译。