文件树数据的最佳 Firestore 数据模型
Best Firestore data model for file tree data
我目前正在构建一个应用程序,它需要使用与文件树类似的结构来存储数据。它看起来像这样:
{
"type": "folder",
"name": "folder A",
"private": false,
"updatedAt": 1231243,
"items": [
{
"type": "folder",
"name": "subfolder A",
"private": false,
"updatedAt": 1231243,
"items": [
{
"type": "file",
"name": "file1"
}
]
},
{
"type": "file",
"name": "file2"
}
]
}
据我所知,目前有 3 种实现方法。
- 只需转储 1 个文档中的所有数据
- 为每个项目数组创建一个子集合
- 创建平面文件夹结构并保存父文件夹 ID 以供查找
我正在寻找一种以尽可能少的查询获取所有这些数据的方法,理想的用例是仅具有根文件夹 ID 并获取所有子文件夹和项目。但我不确定这是否可能。
另外,我打算以后订阅数据,所以文件树会实时更新。
请给我一个关于数据模型应该是什么样子的建议
更新 1
为了进一步说明我需要的查询:
- 本例中我只需要获取最顶层的文件夹(文件夹A)及其下的项目
- 我不需要直接获取嵌套项
示例:在不访问文件夹 A 的情况下获取子文件夹 A / 文件 2
我目前正在构建一个应用程序,它需要使用与文件树类似的结构来存储数据。它看起来像这样:
{
"type": "folder",
"name": "folder A",
"private": false,
"updatedAt": 1231243,
"items": [
{
"type": "folder",
"name": "subfolder A",
"private": false,
"updatedAt": 1231243,
"items": [
{
"type": "file",
"name": "file1"
}
]
},
{
"type": "file",
"name": "file2"
}
]
}
据我所知,目前有 3 种实现方法。
- 只需转储 1 个文档中的所有数据
- 为每个项目数组创建一个子集合
- 创建平面文件夹结构并保存父文件夹 ID 以供查找
我正在寻找一种以尽可能少的查询获取所有这些数据的方法,理想的用例是仅具有根文件夹 ID 并获取所有子文件夹和项目。但我不确定这是否可能。
另外,我打算以后订阅数据,所以文件树会实时更新。
请给我一个关于数据模型应该是什么样子的建议
更新 1 为了进一步说明我需要的查询:
- 本例中我只需要获取最顶层的文件夹(文件夹A)及其下的项目
- 我不需要直接获取嵌套项 示例:在不访问文件夹 A 的情况下获取子文件夹 A / 文件 2