如何在 SQL 数据库中组织嵌套的 JSON 对象数据?

Posted

技术标签:

【中文标题】如何在 SQL 数据库中组织嵌套的 JSON 对象数据?【英文标题】:How do I organize Nested JSON Objects Data in a SQL Database? 【发布时间】:2021-12-19 00:19:08 【问题描述】:

我有一个包含一些数据的 JSON 文件,如下所示:


    "meta":
        "server":"awesome.com",
        "user":"awesomeUser",
        "response":"200"
    ,
    "data":
        "tags":["campaign","awesome"],
        "parameters":["$ref":"#/components/parameters/campaign"],
        "responses":
            "campaign":
                "name":"My first awesome campaign",
                "description":"This is an amazing campaign",
                "content":
                    "id":"000001",
                    "publisher":"awesome",
                    "active":true,
                    "launched":354658465,
                    "users":
                        "countries":
                            "USA":"753365"
                        
                    
                
            ,
            "publisher":
                "name":"awesome",
                "id":"000099",
                "authorized":true,
                "defaultCurrency":"USD"
            
        
    

我需要用这些数据建立一个数据库,但我不知道如何组织表格,特别是嵌套对象。例如,我知道一个表可能是“元”表,其中包含服务器、用户和响应列。然后是包含标签、参数和响应行的数据表,但它们是一个数组、一个对象数组和一个包含更多对象的 objetc。

如何在数据库中管理它?

我正在从头开始尝试,因为我正在学习,有没有办法让它更容易一点?

如果我的解释正确,请告诉我,并在此先感谢您。

【问题讨论】:

【参考方案1】:

您对存储 JSON 数据的最佳方式感到困惑是可以理解的。

组织嵌套 JSON 文档的方式或多或少等同于组织非规范化的关系表。

您必须从需要运行的查询开始。这决定了组织数据的最佳方式。您将数据存储在对您需要进行的查找最方便的形式中。

如果您不知道需要哪些查询,或者您有多种不同类型的查询,那么最好的策略是按rules of normalization 组织数据,并将它们存储在多个表中。 IE。根本不使用 JSON,使用普通的行和列。这至少减少了冗余,并使数据支持未来最广泛的不同查询。

【讨论】:

非常感谢您的帮助!我会看看你的指示。

以上是关于如何在 SQL 数据库中组织嵌套的 JSON 对象数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何从表中选择带有 oracle sql 中的 group by 子句的嵌套 json 对象?

SQL:LATERAL VIEW函数解析多嵌套的json

FLinkFlink SQL 解析嵌套的 JSON 数据

如何在 C# 中使用嵌套的 json 对象

如何在 Ios 中解析数组数据中的嵌套 Json 对象

Redux - createSlice 内的标准化嵌套数据组织