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

How do I organize Nested JSON Objects Data in a SQL Database?

提问人:Marú Segovia 提问时间:11/5/2021 最后编辑:Marú Segovia 更新时间:11/5/2021 访问量:1305

问:

我有一个包含一些数据的 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。

如何在数据库中管理它?

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

如果我正确地解释了自己,请告诉我,并提前非常感谢您。

MySQL JSON 数据库 对象 嵌套

评论


答:

0赞 Bill Karwin 11/5/2021 #1

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

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

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

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

评论

0赞 Marú Segovia 11/6/2021
非常感谢您的帮助!我看看你的意思。