Firebase NoSQL数据建模类计数器
我目前正在学习Firebase/NoSQL数据库建模。我刚看完电影,但我仍然没有什么疑问 假设我正在创建Instagram风格的应用程序,用户可以在其中共享他们的照片,每个用户都可以喜欢每张照片 因此,我想实现两件事: 1.知道哪个用户喜欢哪张照片。(因此每个用户只有一张照片) 2.每张照片有多少人喜欢 我当前的数据库如下所示:Firebase NoSQL数据建模类计数器,firebase,firebase-realtime-database,nosql,Firebase,Firebase Realtime Database,Nosql,我目前正在学习Firebase/NoSQL数据库建模。我刚看完电影,但我仍然没有什么疑问 假设我正在创建Instagram风格的应用程序,用户可以在其中共享他们的照片,每个用户都可以喜欢每张照片 因此,我想实现两件事: 1.知道哪个用户喜欢哪张照片。(因此每个用户只有一张照片) 2.每张照片有多少人喜欢 我当前的数据库如下所示: { "images": { "100": { "imageUrl": "../../image.png", }, "101":
{
"images": {
"100": {
"imageUrl": "../../image.png",
},
"101": {
"imageUrl": "../../image.png",
}
},
"users": {
"200": {
"name": "user1"
},
"201": {
"name": "user2"
}
},
"likes": {
"100": 1,
"101": 2
},
"likesPerUser": {
"200": {
"100": "true"
},
"201": {
"100": "true",
"101": "true"
}
}
"imagesPerUser": {
"200": {
"101": "true"
},
"201": {
"100": "true"
}
}
我的问题与计数器有关,计数器计算每张照片有多少喜欢。最佳做法是将它们作为自己的“根”对象(当前模型),还是在照片下为“喜欢”创建键值对(可能对authorID也这样做)?建议在每篇文章下设置计数器(likes\u count
)。还有一个节点(喜欢
)和一个列表/。像这样:
"images": {
"100": {
"imageUrl": "../../image.png",
"likes_count":2,
"likes":{
"200":true,
"201":true
}
},
"101": {
"imageUrl": "../../image.png",
"likes_count":1,
"likes":{
"201":true
}
}
}
这样,您将确保每个用户只有一个like,因为密钥在Firebase实时数据库节点下必须是唯一的,并且用户ID用作
like\u count
节点下的密钥。您还可以知道哪些用户喜欢这张照片,因为他们的UID在那里。很明显,你可以通过进入柜台看到一张照片有多少人喜欢。干杯!所以基本上我可以使用相同的“likes\u count”结构来跟踪每个用户的追随者?“follower\u count/followers”和“following\u count/following”我不明白为什么不可以;)