mirror of
https://github.com/kuaifan/dootask.git
synced 2026-08-01 19:05:55 +00:00
48 lines
1.7 KiB
Markdown
48 lines
1.7 KiB
Markdown
---
|
||
id: file.tree.concept
|
||
title: 文件树结构
|
||
type: concept
|
||
feature: file
|
||
scope: end-user
|
||
locale: zh
|
||
aliases:
|
||
- 文件夹结构
|
||
- 文件父子关系
|
||
- 文件嵌套
|
||
- 文件树
|
||
- 文件层级
|
||
related_tools: [list_files, get_file_detail]
|
||
related_pages: [file]
|
||
prerequisites: []
|
||
negative:
|
||
- 单个文件夹下最多 300 个直接子文件 / 子文件夹
|
||
- 不支持软链接 / 快捷方式(一个文件只能在一个位置)
|
||
- 不支持跨用户的全局共享根目录
|
||
last_verified: v1.7.90
|
||
---
|
||
|
||
# 文件树结构
|
||
|
||
## 定义
|
||
DooTask 的文件以树形结构组织:每个文件或文件夹(type=folder)通过 `pid` 字段指向父级,根目录 `pid=0`。系统额外维护 `pids` 字段(递归祖先 ID 串)用于快速查询路径与权限。
|
||
|
||
## 关键属性
|
||
- **pid**:直接父文件夹 ID,0 表示根
|
||
- **pids**:祖先链字符串如 `,5,12,28,`,用于 LIKE 查询子树
|
||
- **type=folder**:文件夹本身也是 File 表的一条记录
|
||
- **userid**:拥有者(与共享文件夹一致时表示共享根)
|
||
- **pshare**:所属共享根 ID,0 表示不在任何共享内
|
||
|
||
## 容量限制
|
||
- 单文件夹直接子项数量上限 300(含子文件夹)
|
||
- 整树深度无强制上限但超过 10 层不推荐
|
||
- 共享文件夹最多 100 个共享成员
|
||
|
||
## 与「项目任务文件」的区别
|
||
- 文件树:用户的网盘,独立功能
|
||
- 项目任务文件:附在任务下的附件(`project_task_files` 表),不进入文件树
|
||
- 两者完全隔离,互不可见
|
||
|
||
## 文件类型枚举
|
||
folder(文件夹)/ document(在线文档)/ mind(思维导图)/ drawio(流程图)/ word / excel / ppt / picture / archive / pdf / txt / code / media 等。
|