一对多关系的Redux状态形状

时间:2017-10-05 04:44:56

标签: redux react-redux normalizr

在设计具有相关实体的状态形状时,官方Redux文档建议按ID进行引用而不是嵌套:http://redux.js.org/docs/basics/Reducers.html#note-on-relationships

在一对多关系中,Normalizr会将引用放在" one"关系的一面,例如:

"posts": {
  "1": {
    ...
    comments: ["1", "2", "3"]
...

这比将参考文献放在"许多"中更好吗?侧? e.g。

"comments": {
  "7": {
    ...
    postId: "1"
...

创建Redux商店时,我在哪里放置引用是否重要?

1 个答案:

答案 0 :(得分:1)

我建议在帖子中保留评论的ID。

这样,对于任何给定的帖子,您可以通过直接引用(索引或属性名称,它并不重要)访问所有注释,这是快速和简单的。这是O(N)的复杂性。

在相反的情况下,您必须搜索您对任何特定帖子的所有评论。这是O(N ^ 2)的复杂性。此外,一旦您拥有所有评论,您将不得不重新订购评论。