首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React + Firebase -句柄非正规化数据

React + Firebase -句柄非正规化数据
EN

Stack Overflow用户
提问于 2021-09-28 12:33:13
回答 1查看 61关注 0票数 1

我正在从我的数据库中读取文档,数据库中的数据已经非规范化了。我使用这些数据来呈现一个可点击的GUI组件"UserListItem“。

当用户按下此组件时,它将导航到屏幕“配置文件”。

因此,例如,在获取了一个非规范化的文档之后,我得到了以下内容:

代码语言:javascript
复制
{
    userData: { // Denormalized data
        id,
        avatar,
        name,
        username,
        isCelebrity
    },
    ... other stuff
}

用户单击时导航到的“配置文件”屏幕需要以下用户字段:

代码语言:javascript
复制
userData = {
     /* Included in denormalization */
     id,
     avatar,
     name,
     username,
     isCelebrity,

     /* Not included in denormalization */
     totalFollowers,
     totalFollowing,
     status,
     premium,
}

我该如何处理这种情况?我是说,典型的策略是什么?

我曾想过要在个人资料屏幕上这样做:

代码语言:javascript
复制
useEffect(() => {
   if(!isUserDataComplete(userData)) { // Check that the userData object contains all the required fields
      const newUserData = getUserData(userData.id); // DB Fetch
      users.updateData(newUserData); // Updating the user data in our context
   }
}, []);

但不确定这是否是一种好的、“干净的”方法。

还有,这种情况有名字吗?去读更多关于它的书。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-28 14:54:38

,但不确定这是否是一种好的、“干净的”方法。

这在很大程度上取决于您的功能需求、访问权限、更新频率以及“非规范化”中未包含的数据量。

如果:

所有被授权的Profiles;

  • Between阅读器在用户打开UserList时和他/她打开一个Profile (如果我正确理解的话点击一行UserList )的时候,UserList的所有授权读者都可以读取不属于“非正态化”的数据;

  • --该数据不是“非正态化”中包含的数据(我认为totalFollowers和< code >d14都是数字,d15可能是代码,d16a);

G 218代码>G 218

然后,您可能应该将未包含的数据包含在“去正规化”中:您将保存一些读取,因为打开Profile时要显示的数据已经被获取。

另一方面,如果上述条件之一不为真,则应该保持原样,并在用户打开Profile时获取“非正态化”中未包含的数据。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69361831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档