派生路径——"corpus 即文件系统"
上级:corpus
corpus_notes(所有体裁——wiki / output / subjectivity,自 d925d9081(2026-07-09)起 raw 也在内)有一棵基于 parent_id 自引用的树,但没有 path 这一列。地址是运行时现算出来的:沿父链一路把标题 slug 拼接起来(usecase.WikiTreePaths,backend/internal/corpus/usecase/corpus_tree_path.go:42)。schema 里的那句注释(backend/db/schema.sql:184)说得很直白:corpus 就是一个文件系统——一个文件的路径,不过是它坐落在哪个目录里。 唯一的例外是 genre='writing':扁平、按 slug,路径派生为 writings/<slug>。
由此得到的好处是:换父节点是零成本的——挪动一个节点,它所有子孙的路径都会自动跟着更新,不需要跑一遍 UPDATE 扫描,也没有一份需要保持同步的冗余路径字段。slug 冲突检查是按父节点分别做的(只要求同一父节点下的兄弟之间唯一),所以能随规模扩展。这正是这本 vault 自身的文件夹树所体现的同一种关系。