良好的数据库表设计用于储存的本地化版本的数据[封闭]
-
02-07-2019 - |
题
我想设计一些表格要储存一些数据,这些数据必须转化为不同的语言以后。任何人都可以提供一些"最佳做法"或准则?
感谢
解决方案
假设您有一个如下所示的产品表:
Products
----------
id
price
Products_Translations
----------------------
product_id
locale
name
description
然后你加入product_id = product.id和locale ='en-US'
当然这对性能有影响,因为您现在需要一个连接来获取名称和描述,但它稍后允许任意数量的语言环境。
其他提示
我认为有关你正在做的事情的更多信息会有所帮助。你能给出一些数据样本吗?动态是什么意思?随着时间的推移会插入大量数据,对数据进行大量更改,或者数据只需要在一小段时间内可用。
通常,您可能应该查看具有常见非本地化数据的父级,以及包含本地化数据和语言键的子表。如果通过动态,你的意思是它经常变化,你可能想看一下使用触发器和类似'translationRequired'标志的东西来标记在做出改变之后需要翻译的东西。
你能描述的性质'的动态数据'的?
一种方式来实现这将有3个不同的表格:
- 语言表
- 这表将储存的语言和关键:
[1, English], [2, Spanish]
- 数据定义表
- 当动态的数据是第一次进入作出记录在该表中,与和标识符的数据:
[1, 'Data1'], [2, 'Data2']
- Data_Language表
- 该表将连接的语言,数据的定义和翻译
So: [Data_Language, Data_Definition, Language, Translation] [1, 1, 1, 'Red'] [2, 1, 2, 'Rojo'] [3, 2, 1, 'Green'] [4, 2, 2, 'Verde'] etc ...
当动态数据输入建立的默认的'英国'的记录,然后把你的休闲。
不隶属于 StackOverflow