脚本
我们有一个映射以下关系的数据库:
>标签包含许多广告系列
>广告系列包含许多标签
>广告系列和代码之间的关系由名为campaign_tag的关联实体表示
> campaign_tag实体具有优先级属性
题
当我们的关联实体没有唯一的ID /值时,我们如何实现normalizr(或任何类似的库)来生成一个考虑我们关联实体的展平应用状态?
笔记/杂项思考
我见过的其他例子只有原始实体被映射出来,似乎更适合一对多或一对一的关系.他们通常会生成如下的状态树:
{
entities: {
campaigns: {
'1': { id: 1, name: 'Ace', tags: [1, 2, 3] },
...
},
tags: {
'1': { id: 1, name: 'Example Tag', campaigns: [1, 2, 3] },
...
}
},
...
}
我们的关联实体会进入该实体组吗?我们应该只添加唯一ID吗?这似乎适得其反.压扁这种关系是否合适?
任何帮助表示赞赏,谢谢.
最佳答案 场景:
>你控制API:我会发送这样的对象:
campaigns: [{
id: <id>,
name: <name>,
}],
tags: [{ id: <id>, name: <name> }],
campaign_tags: [{campaign_id, tag_id, priority}]
因此,这将易于管理并避免重复信息.使用redux connect挂载组件时,您可以创建一个选择器来填充广告系列代码,以添加到组件的属性中.
>您无法控制API.在这种情况下,我需要知道你从服务器获得什么类型的响应,以便推荐一些东西.