
上次采用了 V2 老哥的建议,设计了类似于文件夹的模型
当前的设计为存储 文件夹 /文件 全路径:
如:
/folder_1/folder_2/...
/folder_3/file_1
/folder_4/file_5
目前遇到的问题:(深层)文件夹复制的时候需要先找出子文件夹及其相关联的文件,再做分配,这样效率好低
希望得到 V2 大佬的建议,感谢
1 THESDZ 2020 年 10 月 27 日 不太懂业务情况 但是如果是我设计,对外的路径只是一个假的,真实的路径是不会发生变化的 |
5 THESDZ 2020 年 10 月 27 日 @SjwNo1 顺带,建议不要写什么大佬大佬的,你这样一架,那还有人敢进来啊,也就我这样没脸没皮的敢瞎 JB 指定江山,就请问各位,巴拉巴拉就行 |
6 kkbblzq 2020 年 10 月 27 日 子目录本身不就是前缀一致的吗,有啥问题。。。直接左匹配不行吗。。 |
11 eason1874 2020 年 10 月 27 日 实在不行用空间换时间呗,继续有 parent_id 表示上下级关系,再加一个字段 parent_path 表示上级位置。 比如,一级目录的上级路径为空,二级是 1,三级是 1/2,四级是 1/2/3,这些数字是上级目录 ID,文件跟目录一样,也有这个字段。 当你移动四级目录下的内容到三级的时候,就查找 parent_path=1/2/3,然后修改 parent_id=2,parent_path=1/2 随便想的,提供个思路,不一定靠谱。可以去下载几个有名的文件管理项目代码来看看他们怎么设计的,抄过来比较一下效率再决定怎么做。 |
12 sivacohan PRO 复制没什么好办法,你肯定会对目录树做一个 BFS 或者 DFS 。 对应概念上可以参考深拷贝和浅拷贝。 |
13 SjwNo1 OP @eason1874 我现在的设计和你想的一模一样,只是复制不同于移动(剪切),移动只要修改左前缀和 parent_id,但是复制需要生成新的 文件夹和文件,整个 parent_path 都需要修改 谢谢老哥,我去查找一下 |
15 wellsc 2020 年 10 月 27 日 我以为是操作系统的文件系统 |
19 SjwNo1 OP 别沉 ^ -^ |