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

上一篇: language data in JSON (MySQL)

下一篇: Suggestion about structure and logic of multi