5
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定義のスキーマのキーのみが含まれます。これは、後で要素を完全に非正規化することなく一致させることを困難にする可能性がある。
result
を指定すると、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
です(より複雑なデータでそれをやりたいのであればもっと苦労します)。私はそのような正規化は非正規化するのが難しくなると思うが、私は正規化だけに興味がある。