Directus怎么实现笔记的分类,建不同的collections吗

226 次阅读

本文最后更新于 2026年5月3日。

Directus 笔记分类正确做法:不要每个分类建一个 Collection

先给结论:
统一只建 1 个主笔记集合 notes
❌ 不要「生活笔记、技术笔记、随笔」各建一个 Collection,后期难维护、没法统一检索、前端没法通用。

一、标准架构(最推荐,通用可扩展)

只建 2 个 Collection 就搞定所有分类:

  1. notes(主笔记库)
  2. note_categories(分类目录)

1. note_categories 分类表

字段:

  • id 主键
  • name 分类名称(技术/生活/读书/工作)
  • slug 分类别名(小写英文,用于路由)
  • parent 父分类(支持二级分类,自关联)
  • description 简介(可选)

2. notes 笔记主表

基础字段:

  • title 标题
  • content markdown正文
  • slug 链接别名
  • category 关联到 note_categories(多对一)
  • tags 标签(原生标签字段)
  • status 状态(草稿/已发布/归档)
  • created_at / updated_at
  • is_public 是否公开

二、两种分类模式怎么选

模式1:固定栏目分类(用「关联分类表」)

适合:技术笔记、生活、读书、工作这种大栏目

  • notes.category 关联 note_categories
  • 好处:后台下拉选择、可无限层级、改分类名不用改每条笔记

模式2:自由标签(用原生 Tags 字段)

适合:#Vue #Directus #副业 这种细粒度标记

  • 和栏目分类互不冲突,一个定大类、一个打细标签

三、为什么不能一个分类建一个 Collection?

  1. 前端要写 N 套接口、N 个页面,没法统一列表
  2. 无法全局搜索所有笔记
  3. 后期新增分类还要新建表、配权限、配字段,巨麻烦
  4. Obsidian 推送也没法统一接口,要改多套脚本

四、进阶玩法(完全匹配 Obsidian)

1. 支持文件夹映射

Obsidian 文件夹 → 对应 Directus note_categories 分类
推送时自动识别当前笔记所在文件夹,自动赋值分类。

2. 支持二级目录

note_categories 设自关联父分类,实现:
技术 / 前端 / Directus
这种层级结构。

3. 权限控制

Directus 角色可以按分类控制:

  • 普通用户只能看公开分类
  • 管理员可编辑所有分类笔记

五、极简落地步骤

  1. 建集合 note_categories,录入几个大类:技术、生活、读书
  2. 建集合 notes,加多对一关联指向 note_categories
  3. Obsidian 推送脚本里,加一个字段 category 传分类ID/分类名
  4. 前端直接查 /items/notes?filter[category.slug][eq]=tech 就能筛选对应分类