数据库由内容块或者非内容块数据组成,并以不同的视图呈现,比如表格视图。
数据库可以用来干嘛?
主要用途是对信息进行汇总,比如可以做一个影视库。
插入数据库块
在文档中插入数据库:按 /
键,然后输入 sjk 或 /数据库
,回车。默认视图即表格视图
数据库块的结构如上图,表格的第一列是主键列,主键即可以是文本,也可以是块引用,在主键单元格内双击 [
键就能对块进行引用。
数据库列类型
数据库的列类型有:
- 文本
- 数字
- 单选
- 多选
- 日期(和时间)
- 创建时间。当前行的创建时间。
- 更新时间。当前行的更新时间。
- 资源。可以插入各种文件
- 勾选框
- 链接
- 邮箱
- 电话
- 关联
- 汇总
- 模板
前面的类型都比较好理解,关联、汇总、模板算是进阶的列类型。
表格视图
- 创建数据库,默认视图即表格视图
- 添加不同类型的属性
- 添加行
- 非内容块:直接在表格中添加的行,不绑定到任何内容块
- 内容块:通过拖拽到表格的行,或者通过块标菜单 添加到数据库 添加的行
- 按需设置过滤和排序
- 同一个数据库可以添加多个视图,所有视图共享相同的数据,但过滤和排序设置相互独立
关联列与汇总列
关联列是用来在两个数据库间建立联系的,关联列关联的是另一个数据库的主键。
关联列相较于文本列的好处在于:
可以在两个数据库间建立联系,数据库 A 修改后,数据库 B 中的相关列也会同步修改。
可以使用汇总列对所关联的数据库信息进行汇总。
汇总列是与关联列配套使用的,电影数据库的导演、演员列关联了人员数据库的主键(由于是双向关联,所以自动在人员数据库生成了电影导演和电影演员列),在人员数据库中增加一个汇总列,则可以用汇总列在人员数据库中对电影数据库中的信息进行汇总,比如汇总当前人员担任导演的电影总票房。
数据库的保存与显示
数据库的数据在 工作空间\data\storage\av
文件夹下以 json
格式保存。
av, attribute view, 属性视图。
数据库功能最早是叫属性视图,后来随着功能的变化,改叫数据库了。
我们在文档中插入一个数据库块,实际上只是引用了这个数据库的 ID
,数据并没有保存在这个文档的 .sy
文件中。
所以我们复制、粘贴数据库块的时候得到的是一个镜像数据库,新旧数据库块均引用了同一个数据库 json
文件,操作不同的镜像数据库块实际上是在操作同一个 json
文件,所以数据会在镜像数据库块中同步。
数据库的视图配置也是保存在 json
文件中的,所以镜像数据库会拥有一样的视图。
如果说数据库是一座房子,视图就是房子的窗户,透过不同的窗户可以看到不同的房间、不同的内容。
我们可以总结:
- 数据库:实质是
工作空间\data\storage\av
文件夹下某个json
文件。 - 数据库块:编辑器中用来显示、编辑数据库的块,实际是对数据库的引用,并不包含数据库内容。
- 镜像数据库:引用同个数据库的多个数据库块互为镜像数据库。
经测试,删除所有数据库块,数据库的 json 文件也不会被删除,数据库并不会因为删除数据库块而丢失。后续有需要的话可以手动引用数据库。
数据库的深度复制
直接复制数据库块只会得到镜像数据库,并不会得到数据库的副本。
要对数据库进行深度复制,需要使用块标菜单中的 复制 → 复制为完整副本 功能,如果没有此功能,需要升级一下思源笔记。
得到完整副本后,将其剪切、粘贴到需要的位置即可。
数据库与块
数据库的主键可以是块,在主键单元格内双击 [
键就能对块进行引用。
数据库的属性会在块的属性面板—数据库页签中显示,可以在这个页签中对数据库进行修改。
点击页面上的数据库名称后,会显示引用该数据库的数据库块
留言