我是Firebase和nosql的新手,所以请耐心地使用我对sql的引用.所以我的问题是如何在firebase中构建数据?
在firebase中,这是指mysql中的每个"新firebase"="新数据库"还是"表"?
如果在我的实时网络应用程序中,我有用户和评论.在mysql中,我将创建一个用户和一个注释表,然后将它们链接在一起.
我如何在firebase中构建它?
我正在测试firebase的项目可能有相当多的密钥,可能是数百万.
我已经测试过使用节点加载几个10k的记录,并且负载性能看起来很好.但是,如果我扩展我的根节点,"FORGE"Web UI变得非常慢并呈现每条记录.
Firebase不是针对这一数据量而设计的,还是我做错了什么?
我正在使用Firebase作为后端存储机制(JSON)的简单JavaScript Twitter克隆.我熟悉关系数据库(SQL),但不熟悉非关系数据库.我目前正在尝试研究如何在Firebase中设计数据集的结构,因为没有外键关系或表连接.
该应用程序有三个表,users,tweets,和followers.用户可以发布推文,也可以关注其他用户并查看推文的摘要.尝试创建数据结构时会出现问题,因为我不知道如何加入必要的表.例如,我将如何实现用户关注功能?
这是我用来给自己起点的ERD:
正如我一直在试图环绕这整个事情的JSON我的头,这是最接近的,我可以将它与关系数据库,同时仍使用火力地堡的.push()功能添加到列表数据库(从火力地堡看到仪表板):
我看到有些人试图通过"取消规范化"数据来解决这个问题,理由是Firebase没有任何查询机制.然而,这些文章都主要是在2014年之前,也就是当火力地堡并添加查询.话虽如此,我不明白使用查询如何帮助我,我想我已经陷入了生成的密钥.
我应该如何最好地构建我的数据以使用Firebase JSON列表?我已经阅读了他们的一些文档,但无法找到任何使用我正在寻找的东西和生成的密钥.
我应该尝试以.set()某种方式使用该方法,并使用电子邮件地址作为用户的"主键"而不是生成的密钥?[如下所述,这是我计划避免的事情.谢谢@metame]
这更像是我应该关注的数据结构吗?然后按键查询?
users: {
Hj83Kd83: {
username: "test",
password: "2K44Djl3",
email: "a@b.c"
},
J3kk0dK4: {
username: "another",
password: "33kj4l5K",
email: "d@e.f"
}
}
tweets: {
Jkk3ld92: {
userkey: "Hj83Kd83",
message: "Test message here!"
},
K3Ljdi94: {
userkey: "J3kk0dK4",
message: "Another message here!"
}
}
followers: {
Lk3jdke9: {
userkey: "Hj83Kd83",
followerkey: "J3kk0dK4"
}
}
Run Code Online (Sandbox Code Playgroud)
如果我还要包含其他内容,请告诉我!
我想使用Firebase进行聊天.我需要为每个用户显示他们所属的组列表以及每个组的所有成员.
由于Firebase的设计方式,并且为了获得可接受的性能,我认为列出包含成员列表的所有组,并为每个用户创建一个包含所有组的条目.
我的第一个问题是,这是正确的方法吗?
如果是这样,我的第二个问题是如何以原子方式添加(或删除)用户,即确保将用户添加到组中并将组添加到用户中或根本不添加(即从不仅存储在1个位置并使DB不一致)?
对于 Facebook 类型的社交网络应用程序,需要一个高性能的数据库结构,用于在 Firebase(Cloud Firestore) (NoSQL) 中存储数据。
要存储的数据:
- Userinfo (name, email etc)
- Friends
- Posts
- Comments on posts.
Run Code Online (Sandbox Code Playgroud)
我对以下两个关于查询性能的数据库结构感到困惑(如果数据库变得巨大)。
(参考:C_xxx 是收藏,D_xxx 是文档)
结构 1
C_AllData
- D_UserID-1
name: xxxx,
email: yyy,
friends: [UserID-3, UserID-4]
- C_Posts
- D_PostId-1
Text: hhh
Date: zzz
- C_Comments
- D_CommentId-1
UserID: 3
Text: kkk
- D_CommentId-2
UserID: 4
Text: kkk
- D_PostId-2
Text: hhh
Date: zzz
- C_Comments
- D_CommentId-3
UserID: 3
Text: kkk
- D_CommentId-4
UserID: 4
Text: kkk
- …Run Code Online (Sandbox Code Playgroud)