文件夹系统的Firebase数据结构/索引
我有以下数据结构:文件夹系统的Firebase数据结构/索引,firebase,firebase-realtime-database,nosql,Firebase,Firebase Realtime Database,Nosql,我有以下数据结构: "users": { $userid: { "forms": { "ID_OF_FORM 1": { "name": "Name goes here" }, "ID_OF_FORM 2": { "name": "Name goes here" } } } } 我希望能够将我的“表单”放在文件夹系统中,以便更好地为用户组织所有表单。现在我使用/users/auth.id/forms
"users": {
$userid: {
"forms": {
"ID_OF_FORM 1": { "name": "Name goes here" },
"ID_OF_FORM 2": { "name": "Name goes here" }
}
}
}
我希望能够将我的“表单”放在文件夹系统中,以便更好地为用户组织所有表单。现在我使用/users/auth.id/forms/id
调用它们。我曾计划将对象放入表单
对象中,但如果这样做的话,我想我再也不能用表单id调用它们了
我不知道该如何存储这些文件夹,以便轻松显示它们
- 我需要显示根目录中的所有文件夹或 用户当前所在的文件夹
- 我还需要能够使用表单的id调用表单
"users": {
$userid: {
"forms": {
"ID_OF_FORM 1": { "name": "Name goes here", "folder_id": "ID_OF_FOLDER" },
"ID_OF_FORM 2": { "name": "Name goes here", "folder_id": "ID_OF_FOLDER" }
},
"folders": {
"ID_OF_FOLDER 1": { "name": "name of folder" },
"ID_OF_FOLDER 2": { "name": "name of folder" },
"ID_OF_FOLDER 3": {
"name": "name of folder",
"ID_OF_FOLDER 4": { "name": "would this even work" }
}
}
}
}
在我看来,这很好,尽管除非知道所有用例(StackOverflow并不是真正合适的论坛),否则很难确定 我会将
文件夹
稍微更改为:
"folders": {
"ID_OF_FOLDER 1": { "name": "name of folder" },
"ID_OF_FOLDER 2": { "name": "name of folder" },
"ID_OF_FOLDER 3": { "name": "name of folder" },
"ID_OF_FOLDER 4": { "name": "would this even work", "folder_id": "ID_OF_FOLDER 3" }
}
否则,您将面临超过Firebase对树的深度施加的32级限制的风险。很好的一点是,您可以通过这里的ID直接访问任何文件夹
您可以考虑为所有的项目类型、表单和文件夹(以及在构建应用程序时可能出现的任何其他)使用单个顶级节点:
但我认为目前这对于您的用例来说不是太有利。考虑到您所说的,文件夹和表单之间的分离看起来相当不错。谢谢Frank!现在我有很好的理由将文件夹和表单分开(我没有列出表单的更多属性),但我总是乐于接受建议以及其他方式的利弊。一如既往,我感谢你的帮助。
"items": {
"ID_OF_FORM 1": { "type": "form", "name": "Name goes here", "folder_id": "ID_OF_FOLDER" },
"ID_OF_FORM 2": { "type": "form", "name": "Name goes here", "folder_id": "ID_OF_FOLDER" }
"ID_OF_FOLDER 1": { "type": "folder", "name": "name of folder" },
"ID_OF_FOLDER 2": { "type": "folder", "name": "name of folder" },
"ID_OF_FOLDER 3": { "type": "folder", "name": "name of folder" },
"ID_OF_FOLDER 4": { "type": "folder", "name": "would this even work", "folder_id": "ID_OF_FOLDER 3" }
}