gpt4 book ai didi

javascript - Normalizr:通过类型而不是多态映射的模式来识别实体

转载 作者:数据小太阳 更新时间:2023-10-29 05:35:03 24 4
gpt4 key购买 nike

对于多态模式,例如 Union在 Normalizr 中,对于模式定义和数据:

const data = { owner: { id: 1, type: 'user', name: 'Anne' } };

const user = new schema.Entity('users');
const group = new schema.Entity('groups');
const unionSchema = new schema.Union({
user: user,
group: group
}, 'type');

const normalizedData = normalize(data, { owner: unionSchema });

标准化数据采用以下形式:

{
entities: {
users: { '1': { id: 1, type: 'user', name: 'Anne' } }
},
result: { owner: { id: 1, schema: 'user' } }
}

实体以模式键为键,在本例中为 users,但结果对象仅包含 UnionSchema 定义中模式的键。如果没有完全反规范化,这会使以后很难匹配元素。

在给定结果的情况下,是否有更好的方法使用 normalizr 规范化此类数据,以便更轻松地从 entities 中提取实体?出于我的目的,理想情况下,数据可以从以下内容标准化:

const data = { owner: { id: 1, type: 'users', name: 'Anne' } };

{
entities: {
users: { '1': { id: 1, type: 'users', name: 'Anne' } }
},
result: { owner: { id: 1, type: 'users' } }
}

请注意,类型与实体键匹配(这很简单),结果中键的名称是 type(如果您想处理更复杂的数据,那就更麻烦了).我怀疑这种规范化会使反规范化变得更加困难,但我只对规范化感兴趣。

最佳答案

得到了一个答案: https://github.com/paularmstrong/normalizr/issues/281

显然,这种行为是故意的,不会改变——没有办法使用 Normalizr 来做我要求的事情。

关于javascript - Normalizr:通过类型而不是多态映射的模式来识别实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45083510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com