跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 再一次卡在了文件系统设计,求救大佬
未分類
29 10 月 2020

再一次卡在了文件系统设计,求救大佬

再一次卡在了文件系统设计,求救大佬

資深大佬 : SjwNo1 0

上次采用了 V2 老哥的建议,设计了类似于文件夹的模型

当前的设计为存储 文件夹 /文件 全路径:
如:
/folder_1/folder_2/…
/folder_3/file_1
/folder_4/file_5

目前遇到的问题:(深层)文件夹复制的时候需要先找出子文件夹及其相关联的文件,再做分配,这样效率好低
希望得到 V2 大佬的建议,感谢

大佬有話說 (19)

  • 資深大佬 : THESDZ

    不太懂业务情况
    但是如果是我设计,对外的路径只是一个假的,真实的路径是不会发生变化的

  • 資深大佬 : THESDZ

    @THESDZ 目前来说,我经历的项目如果需要存文件都是使用对象存储的,数据库只存一个地址

  • 主 資深大佬 : SjwNo1

    @THESDZ 文件的物理位置不做改变,只是表上的数据需要批量复制,路径要批量分配

  • 資深大佬 : THESDZ

    @SjwNo1 如果是需要提升查询效率,可以建立一个字段,存储所有的父级 id,不过这样会提升写的难度,降低写的效率,看取舍

  • 資深大佬 : THESDZ

    @SjwNo1 顺带,建议不要写什么大佬大佬的,你这样一架,那还有人敢进来啊,也就我这样没脸没皮的敢瞎 JB 指定江山,就请问各位,巴拉巴拉就行

  • 資深大佬 : kkbblzq

    子目录本身不就是前缀一致的吗,有啥问题。。。直接左匹配不行吗。。

  • 主 資深大佬 : SjwNo1

    @THESDZ 是的 我目前就是这样设计的,每个文件夹节点都有 parent_id, 但是当文件夹复制的时候,感觉仍然避免不了递归查找

  • 資深大佬 : THESDZ

    @SjwNo1 我的意思是

    – 0
    – – 1
    – – – 2

    那么 2 会有个字段存储 0,1 既有顺序,也有树状结构描述

  • 主 資深大佬 : SjwNo1

    @kkbblzq 子目录下 路径左前缀确实是一致的,文件夹复制过去之后,内部的所有文件夹和文件的路径都需要改变啊

  • 資深大佬 : kkbblzq

    @SjwNo1 不是很了解你业务怎么样的,通过左前缀匹配不就可以找到所有文件和目录了。然后替换一下路径,换一下最顶层的父节点不就完事了。。

  • 資深大佬 : eason1874

    实在不行用空间换时间呗,继续有 parent_id 表示上下级关系,再加一个字段 parent_path 表示上级位置。

    比如,一级目录的上级路径为空,二级是 1,三级是 1/2,四级是 1/2/3,这些数字是上级目录 ID,文件跟目录一样,也有这个字段。

    当你移动四级目录下的内容到三级的时候,就查找 parent_path=1/2/3,然后修改 parent_id=2,parent_path=1/2

    随便想的,提供个思路,不一定靠谱。可以去下载几个有名的文件管理项目代码来看看他们怎么设计的,抄过来比较一下效率再决定怎么做。

  • 資深大佬 : sivacohan

    复制没什么好办法,你肯定会对目录树做一个 BFS 或者 DFS 。
    对应概念上可以参考深拷贝和浅拷贝。

  • 主 資深大佬 : SjwNo1

    @eason1874 我现在的设计和你想的一模一样,只是复制不同于移动(剪切),移动只要修改左前缀和 parent_id,但是复制需要生成新的 文件夹和文件,整个 parent_path 都需要修改
    谢谢老哥,我去查找一下

  • 主 資深大佬 : SjwNo1

    @sivacohan 是的,很苦恼啊哈哈,我去研究一下,谢谢

  • 資深大佬 : wellsc

    我以为是操作系统的文件系统

  • 主 資深大佬 : SjwNo1

    @wellsc 是文件管理的哈哈

  • 資深大佬 : keygen88

    @SjwNo1 文件系统->目录结构,可以做个映射关系,映射一下就行了

  • 主 資深大佬 : SjwNo1

    @keygen88 在下天资愚钝,欲求大佬细说

  • 主 資深大佬 : SjwNo1

    别沉 ^ -^

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具