考虑一个(ReactJS)应用程序,其中 aGroup
和User
实体通过多对多关系相互关联。
状态树如下所示:
{
groups: {
"1": {id: "1", name: "..."},
...
},
users: {
"42": {id: "42", name: "..."},
...
},
memberships: [
{groupId: "1", userId: "42"},
...
]
}
在 UI 中,用户可以“选择”零个或多个组,每个组具有零个或多个关联用户。这目前以如下状态表示:
{
selectedGroupIds: {
"1": {selectedUserIds: ["42", ...]},
...
}
}
(顺便说一句,以下设计可能比上述设计更可取,因为它更明确;希望对此发表评论):
{
selectedGroupIds: [
{id: "1", selectedUserIds: ["42", ...]},
...
]
}
无论如何,回到主要问题:
目前,当在组的上下文中选择用户时,在某个时候组和用户断开连接(成员资格终止,用户被删除等),然后selectedGroupIds
将处于无效状态。在撰写本文时,我现在意识到这也适用于memberships
删除组或用户的情况。
有什么方法可以设计状态树以防止上述情况发生?或者在关系发生变化的情况下,人工管家是不可避免的吗?