Col*_*rts 1 database json firebase
我是Firebase的新手,并且不熟悉数据建模的最佳方法.我是一名网页设计师,他喜欢Web开发并选择Firebase作为服务,因为它易于使用.
现在我正在将我的数据建模为:
[Firebase Root]
|
+--userId (Firebase unique UID)
|
+--Projects
|
+ ProjectId (Firebase unique key)
|
+--Images
|
+--ImageId (Firebase unique key)
|
+--Comments
|
+--CommentId (Firebase unique key)
Run Code Online (Sandbox Code Playgroud)
我想知道这是不是很好的做法?它的可扩展性/性能如何?
它看起来很臃肿,但我对如何解决这个问题几乎没有什么经验,我想设计我的应用程序时考虑到最佳实践.
方式大问题.这实际上取决于您想要对数据做什么.
虽然这种结构在技术上没有任何错误,但它的嵌套非常深,因此,从中获取数据可能会受到限制.
你真的想尽可能地平整你的数据 - 越平坦越好.
一种想法是让您的数据可重复使用.不确定这是否是您设置的一部分,但是这样的话:
users
uid_0
name: "Jeff"
uid_1
name: "Cole"
projects
project_id_0
user: uid_0
images
image_id_0: true
image_id_1: true
comments:
comment_id_0: true
project_id_1
user: uid_1
image_id_1: true
comment_id_1: true
images
image_id_0
image: "link to some image"
image_id_1
image: "link to another image"
comments
comment_id_0
verbiage: "nice project_id_0!!!"
made_by: user_id_0
project: project_id_0
comment_id_1
verbiage: "project_id_1 is the best project evah"
made_by: user_id_1
project: project_id_1
Run Code Online (Sandbox Code Playgroud)
使用这种结构,您的项目通过引用将用户,图像和注释绑定到它,它非常浅 - 易于获取您的数据.
您甚至可以将其扩展一下,并将多个用户分配给单个项目.
如果您注意到,我将评论与项目和项目交叉链接到评论.这样,您可以轻松地查询注释节点有关特定项目(或由特定用户创建)以及何时加载项目节点(在代码中),您可以直接访问有关该项目的注释.
这使您可以跨多个项目使用相同的图像.
| 归档时间: |
|
| 查看次数: |
402 次 |
| 最近记录: |