2

全部:

我试图了解实体数组和对象之间的关系:

  1. 它们只是描述数据差异结构的不同格式吗?或者实体与其他两个有很大不同?
  2. 规范化的数据结果具有类似 {result:,entities:}的结构,数据结构是否仅使用 schema.Entity 定义在实体中,或者 schema.Array 和 Object 也可以?当我定义一个只使用对象和数组的架构时,似乎没有放入实体,我不确定这是我的架构 def 错误还是 normalizr 的工作方式?
  3. 如果只有 schema.Entity() 定义的数据可以放入实体中,那么我如何将数据数组放入其中,例如 {0:.., 1:..,2:,}?

例如,我有如下数据:

var data = [
    {
        id:"0",
        items:[
            {
                id: "0",
                data: {name:"data-0-0"}
            },
            {
                id: "1",
                data: {name:"data-0-1"}
            }
        ]
    },
    {
        id:"1",
        items:[
            {
                id: "0",
                data: {name:"data-1-0"}
            },
            {
                id: "1",
                data: {name:"data-1-1"}
            }
        ]
    }
]

const normalizedData = normalize(data, [{items:[{data:{}}]}]);

And the normalized data is like:

{
    "entities": {},
    "result": {
        "0": {
            "id": "0",
            "items": [
                {
                    "id": "0",
                    "data": {
                        "name": "data-1-0"
                    }
                }
            ]
        }
    }
}

谢谢

4

1 回答 1

3

问题: 它们只是描述数据差异结构的不同格式吗?或者实体与其他两个有很大不同?

回答:是的。AnEntity是具有与其关联的唯一标识符的单一对象。Array并且Object是无法唯一识别的更通用的结构。在您的情况下,您似乎只需要使用ArrayEntity用于您描述的数据。

问题: 数据结构是否仅使用模式定义?实体放在实体中?

回答:是的。

于 2017-03-17T17:24:46.270 回答