我正在通过Firebase使用实时数据库构建内部Web应用程序。它是用于专业学习注册的,我正在尝试弄清楚如何最好地构造树。
我有3条主要数据路径:courses/
,regs/
,users/
。当我请求快照时,我会将每个数据库中的数据保持隔离,以最大程度地减少数据下载。但是,我发现我正在复制数据(而不是保存在存储中)或 我正在使用多个调用来收集和构建用户所需的信息。
我用树完成了三个主要视图:
数据
courses: {
course_1: {
title: 'Some course',
location: 'Some place',
organizer: 'Organizer 1',
desc: 'Some string description',
start: `datestring`
},
course_2: { ... }
},
regs: {
course_1: {
title: 'Course Title',
users: {
userUid1: {
name: 'Person 1',
email: 'person1@email.com'
},
userUid2: { ... },
},
},
course_2: { ... }
},
users: {
userUid1: {
building: 'Location',
name: 'Person 1',
email: 'person1@email.com'
regs: {
course_1: {
title: 'Some Course'
start: 'datestring`,
location: 'Some place'
},
course_2: { ... }
}
},
userUid2: { ... }
}
所以,我的问题是:在什么时候,数据非规范化比更深的树更不易理解?我需要重新考虑这个结构吗?