PostgreSQL 9.5.2 - 构建JSON对象/字符串 - 多个1:多个关系

时间:2016-04-13 14:32:05

标签: mysql json postgresql

我正在使用PostgreSQL为项目构建JSON对象/字符串。

我是语法新手,正在寻找"最佳做法"这样做。

想象一下下面的表格(忽略设计)

CREATE TABLE object (
    item_id INT
    ,name VARCHAR(64)
    ,category_id INT
)
CREATE TABLE object_features (
    item_id INT
    ,feature_1 VARCHAR(64)
    ,val_1 FLOAT
    ,feature_2 VARCHAR(64)
    ,val_2 FLOAT
    ,feature_3 VARCHAR(64)
    ,val_3 FLOAT
    ,feature_n VARCHAR(64)
    ,val_n FLOAT
)
CREATE TABLE category (
    id INT
    ,name VARCHAR(64)
)
CREATE TABLE comment (
    object_id  INT
    ,name VARCHAR(64)
    ,date DATETIME
    ,score INT
)

您将如何创建以下JSON(或至少尽可能接近)?

[{
    "item_id": 1234,
    "category": "category 1",
    "name": "xyz",
    "features": [{
        "feature_1": "val_1",
        "highlight": "Y"
    }, {
        "feature_4": "val_2",
        "highlight": "Y"
    }, {
        "feature_3": "val_3",
        "highlight": "N"
    }, {
        "feature_n": "val_n",
        "highlight": "Y"
    }],
    "comments": [{
        "name": "larry",
        "date": "2016-04-01",
        "score": 1
    }, {
        "name": "harry",
        "date": "2016-03-01",
        "score": 5
    }]
}, {
    "item_id": 434,
    "category": "category 2",
    "name": "dda",
    "features": [{
        "feature_1": "val_1",
        "highlight": "N"
    }, {
        "feature_4": "val_2",
        "highlight": "N"
    }, {
        "feature_3": "val_3",
        "highlight": "N"
    }, {
        "feature_n": "val_n",
        "highlight": "N"
    }],
    "comments": [{
        "name": "merry",
        "date": "2016-04-01",
        "score": 1
    }]
}]

此致 ģ

0 个答案:

没有答案