思源自定义标签实现原理求助

思源可以为块增加自定义标签,在运行时数据库是怎么实现的?

想法一:

新建很多很多的列,比如给一个块增加 subject=math 那就全局新建 subject 的列,这个块是 math,其他的都是 null

但是这样会造成大量的资源浪费啊

想法二

EAV 模型,即一个表储存普通的系统属性,另一个表储存 id-key-value 属性,比如:

block-id key value
1 subject math
1 subject english

但是这样还怎么支持嵌入块的 SQL 查询呢?

想法三 JSON 储存 + 虚拟列索引

问 qwen 回答的这个,看了半天没看懂。。

image.png

所以思源到底是怎么支持这个功能的呢?各位有什么别的想法吗?谢谢!

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    26111 引用 • 108397 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    10035 引用 • 45600 回帖 • 70 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...