JSON中的语言数据(MySQL)
我目前正在设计一个多语言网站的数据库。
该网站必须能够以未定义数量的语言存储数据(目前有3种语言,未来可能会更多)。
我的问题是:
将网站的字段值存储在MySQL的JSON字符串中是否有任何不利之处?
我对这个问题的通常做法是有一个额外的表(var_translations),我将每个翻译存储在一个新行中:
languages - vars - var_translations
我想我可以在“vars”表中使用一个TEXT字段将一个“var”的所有翻译存储在同一行中,该TEXT字段可以存储包含值的数组的JSON字符串,以后我可以使用它PHP:
{
"name":{
"EN": "Name",
"ES": "Nombre",
"FR": "Nom"
}
}
我不确定这种存储数据的方式是否有问题,但我喜欢它如何支持多种语言,并保持数据库清洁和清晰。
在我开始实施这个方法之前,有什么我应该担心的吗?
当然还有一个缺点:你不能做简单的请求,例如获取法文中没有翻译的元素。
关系数据库的重点在于结构化数据。 如果你没有重要的理由,不要偏离这个逻辑。
在这种情况下,正如你所看到的,很容易得到一个包含翻译的表i18n_name。
如果(并且只有)确认你应该存储原始的JSON,那么你可能想看看DBMS有很好的支持,最值得注意的是PostgreSQL。
链接地址: http://www.djcxy.com/p/37501.html