【发布时间】:2017-10-18 19:12:14
【问题描述】:
我是使用 firebase 的初学者,我对重复数据有疑问,而不是使用密钥引用。假设我有一个视频的用户 cmets 列表。每个评论都有一个用户名和头像。假设用户可以更改名称和头像。有什么更好的选择:
- 仅保留每条评论中的 userId 并发出更多请求以获取用户个人资料数据或
- 复制用户个人资料和每条评论,并在用户更改姓名或头像时使用 Firebase 功能更新个人资料数据。
需要考虑的几点:
选项 1
优点
- 使用更少的存储空间
缺点
- 如果我们有很多用户使用该应用程序,我们将有很多额外的请求来获取名称和头像
选项 2
优点
- 花费更多我们将在用户更改头像或名称时使用 Firebase 函数在后端执行
常量
- 使用更多存储空间
例子:
// OPTION 1
{
user: {
user1: {
name: 'Name 1',
avatar: 'Avatar 1',
}
},
comments: {
comment1: {
text: 'comment',
user: 'user1'
}
}
}
// OPTION 2
{
user: {
user1: {
name: 'Name 1',
avatar: 'Avatar 1',
}
},
comments: {
comment1: {
text: 'comment',
user: {
id: 'user1',
name: 'Name 1',
avatar: 'Avatar 1',
}
}
}
}
【问题讨论】:
标签: firebase firebase-realtime-database nosql