我正在从我的数据库中读取文档,数据库中的数据已经非规范化了。我使用这些数据来呈现一个可点击的GUI组件"UserListItem“。
当用户按下此组件时,它将导航到屏幕“配置文件”。
因此,例如,在获取了一个非规范化的文档之后,我得到了以下内容:
{
userData: { // Denormalized data
id,
avatar,
name,
username,
isCelebrity
},
... other stuff
}用户单击时导航到的“配置文件”屏幕需要以下用户字段:
userData = {
/* Included in denormalization */
id,
avatar,
name,
username,
isCelebrity,
/* Not included in denormalization */
totalFollowers,
totalFollowing,
status,
premium,
}我该如何处理这种情况?我是说,典型的策略是什么?
我曾想过要在个人资料屏幕上这样做:
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
}
}, []);但不确定这是否是一种好的、“干净的”方法。
还有,这种情况有名字吗?去读更多关于它的书。
发布于 2021-09-28 14:54:38
,但不确定这是否是一种好的、“干净的”方法。
这在很大程度上取决于您的功能需求、访问权限、更新频率以及“非规范化”中未包含的数据量。
如果:
所有被授权的Profiles;
UserList时和他/她打开一个Profile (如果我正确理解的话点击一行UserList )的时候,UserList的所有授权读者都可以读取不属于“非正态化”的数据;
totalFollowers和< code >d14都是数字,d15可能是代码,d16a);
G 218代码>G 218
然后,您可能应该将未包含的数据包含在“去正规化”中:您将保存一些读取,因为打开Profile时要显示的数据已经被获取。
另一方面,如果上述条件之一不为真,则应该保持原样,并在用户打开Profile时获取“非正态化”中未包含的数据。
https://stackoverflow.com/questions/69361831
复制相似问题