notion database 必知必会

用过 mysql 的同学一定很容易上手 notion 。在 notion 中,掌握好 database,基本上就掌握了 notion 最核心的概念。

notion 的 database 对应的就是数据库中的 table。在 notion 的 database 中每插入一条数据,实际上就是插入一个 page。

只是这个 page 能承载的东西非常多,包含文本,媒体,日期,甚至是另外一个 database。

使用一个 /database inline 就能在一个页面内创建一个 database,而理解 database 的概念,就要理解它的每个设置项,每个设置项又有他们对应的属性。

这样设置项和属性的对应联系如果都理解了,那么 database 就掌握差不多了。

设置项

layout

这个准确说是 database 的展示属性,它表示我们的 database 应该要以什么形式在页面中表现出来。

  • Table
  • Board
  • TimeLine
  • Calendar
  • List
  • Gallery

各种展示形式如字面意义描述,很清晰。

property

前面说过,database 中每条数据是一个 page,而数据中的每个字段就是 page 中的 property。property 的类型非常丰富,并且目前还在不断扩展中。

  • Text
  • Number
  • Select
  • Multi-Select
  • Status
  • Date
  • Person
  • Files & Media
  • Checkbox
  • URL
  • Email
  • Phone
  • Formula
  • Relation
  • Rollup
  • Created time
  • Created by
  • Last edit time
  • Last edit by
  • Button
  • ID

其中大多数 property 都很好理解,这里描述几个不好理解的:

Formula

公式,这是非常有用的一个功能,我能用某种特定的语法来构造一段文本。

比如有个场景,notion 中创建一个 task 的database,有个property 名字是“需要番茄次数”,它是 int 类型。

并且我希望在外面的 table 栏中,有一列能显示 如下字样:“需要x 番茄” 或者空字符串。

这个显示文本列的逻辑是:如果“需要番茄次数”为 0,那么这一列内容为空字符串,如果不为空,根据“需要番茄次数”列拼接显示字符串。

这种需求就是 formula 类型的范畴了。我们创建一个列,它的 property 设置为 formula,并且为它编写公式:

prop("需要番茄次数") >= 0? "需要" + prop("需要番茄次数") + "番茄":""

那么它就能有如下的表现

relation & rollup

当一个database 和另外一个 database 有关联的时候,我们就用到这两个字段。

什么叫有关联呢?就是 mysql 表中的 1 对多,多对多。

比如一个书籍表 和一个作者表,作者表的字段包含姓名,年龄,地址。而书籍表的字段包含书本的名字,作者。

我们希望作者表和书籍表的作者属性进行关联,即一个作者拥有多本书籍,那么要怎么做呢?

我们可以在作者表增加一个 Relation 类型 property ,并它关联到书籍表 的条目。

这时候,我们就创建了一个作者表和书籍表的一对多关系。

那么 rollup 又是什么作用呢?

如果每个书籍还有价格,那么我们不仅想在书籍表中看到价格,我们还想在作者表中看到这个作者的所有书的价格,我们就要用到 rollup 了。

我们在作者表创建一个 rollup 属性字段“书本总收入”,它使用 Sum 的计算方式,计算书籍表中的价格 property

最终表现如下:

relation 是描述两个表关系,rollup 是通过 relation 来聚合某个字段

button

button 如名所示,就是增加一个按钮。我们可以为这个按钮定义好行为。

这个按钮点击的时候,我们可以触发预先定义好的 action,比如在任务表中,我们可以定义 action 为将状态修改为“已完成”,或者是将打卡时间设置为当前时间,那么点击按钮就会执行对应的行为了。

filter & sort

这两个逻辑不难理解,按照某个字段过滤表格(filter),按照某个字段排列表格(sort)。和数据表查询中的 where 以及 order by 是一模一样的。

唯一特别的是,他们两个用的频度非常高,所以在直接在表格外层也可以直接设置。

我们可以很容易用 filter 和 sort 来创建出 “未完成任务视图”,“本周任务视图”,“优先级排序视图”等。

group

分组,顾名思义,按照某个字段进行分组并且展示出来。

sub-item

如果你数据库中的条目是有层级的,那么使用这个sub-item是非常好用的。我们可以为一个条目创建一个子条目,那么在实际数据表中,就会用 parent item,sub-item 将这两个条目关联起来。

在 notion 的 database 中,这个层级是无限的,你可以为某个条目创建一个子条目,再为子条目创建它的子条目。

dependency

我们的数据表如果表示的是任务,那么就存在某些任务必须要完成才能开始下一个任务。这里就可能会有任务 blocking 其他任务,也代表有任务会 blocked by 某个任务。描述这个关系就是 denpendency 的作用。

我们的表如果开启了 dependency,那么表中自动会加两列:blocking 和 blocked by。

想要更清晰的看到他们的关系,我们可以用 timeline 时间线的形式来展示。

automation

这是一个自动化的功能,表示如果表格有什么变动,那么就执行什么 action。

比如表格增加了一条数据,发送一个消息到 slack 中。

但是由于更多的 action 是需要付费的,我目前还不是付费用户,所以没有研究更多了。

load limit

当database 是 list 形式的时候,单页面显示条数,如果有更多,可以使用下拉的 Load more 来展示更多。

总结

这些设置项最核心的还是要设置好 property,这个 property 非常灵活,里面的 formula 更是提供了无限的想象空间。能配合设计出很多奇特的表格。

入 notion 坑,不亏。

notion database 必知必会的更多相关文章

  1. 读书笔记--SQL必知必会--建立练习环境

    书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL in 10 Minutes - Fourth Edition> MyS ...

  2. 《MySQL 必知必会》读书总结

    这是 <MySQL 必知必会> 的读书总结.也是自己整理的常用操作的参考手册. 使用 MySQL 连接到 MySQL shell>mysql -u root -p Enter pas ...

  3. mysql必知必会系列(一)

    mysql必知必会系列是本人在读<mysql必知必会>中的笔记,方便自己以后查看. MySQL. Oracle以及Microsoft SQL Server等数据库是基于客户机-服务器的数据 ...

  4. mysql必知必会

    春节放假没事,找了本电子书mysql必知必会敲了下.用的工具是有道笔记的markdown文档类型. 下面是根据大纲已经敲完的章节,可复制到有道笔记的查看,更美观. # 第一章 了解SQL## 什么是S ...

  5. 《MySQL必知必会》整理

    目录 第1章 了解数据库 1.1 数据库基础 1.1.1 什么是数据库 1.1.2 表 1.1.3 列和数据类型 1.1.4 行 1.1.5 主键 1.2 什么是SQL 第2章 MySQL简介 2.1 ...

  6. msql 必知必会笔记

    Edit Mysql 必知必会 第一章 理解SQL 什么是数据库 数据库(database) 保存有组织的数据的容器 什么是表  一组特定类型的数据的结构化清单 什么是模式  数据库和表的布局及特性的 ...

  7. mysql学习--mysql必知必会

      上图为数据库操作分类:     下面的操作參考(mysql必知必会) 创建数据库 运行脚本建表: mysql> create database mytest; Query OK, 1 row ...

  8. SQL 必知必会 总结(一)

    SQL必知必会 总结(一) 第 1 课 了解SQL 1.数据库(database): 保存有组织的数据容器(通常是一个文件或一组文件). 2.数据库管理系统(DBMS): 数据库软件,数据库是通过 D ...

  9. MySQL使用和操作总结(《MySQL必知必会》读书笔记)

    简介 MySQL是一种DBMS,即它是一种数据库软件.DBMS可分为两类:一类是基于共享文件系统的DBMS,另一类是基于客户机——服务器的DBMS.前者用于桌面用途,通常不用于高端或更关键应用. My ...

  10. mysql 必知必会总结

    以前 mysql 用的不是很多, 2 天看了一遍 mysql 必知必会又复习了一下基础.  200 页的书,很快就能看完, 大部分知识比较基础, 但还是了解了一些以前不知道的知识点.自己做一个备份,随 ...

随机推荐

  1. TextBrewer:融合并改进了NLP和CV中的多种知识蒸馏技术、提供便捷快速的知识蒸馏框架、提升模型的推理速度,减少内存占用

    TextBrewer:融合并改进了NLP和CV中的多种知识蒸馏技术.提供便捷快速的知识蒸馏框架.提升模型的推理速度,减少内存占用 TextBrewer是一个基于PyTorch的.为实现NLP中的知识蒸 ...

  2. 9.2 Windows驱动开发:内核解析PE结构导出表

    在笔者的上一篇文章<内核特征码扫描PE代码段>中LyShark带大家通过封装好的LySharkToolsUtilKernelBase函数实现了动态获取内核模块基址,并通过ntimage.h ...

  3. 2.11 PE结构:添加新的节区

    在可执行PE文件中,节(section)是文件的组成部分之一,用于存储特定类型的数据.每个节都具有特定的作用和属性,通常来说一个正常的程序在被编译器创建后会生成一些固定的节,通过将数据组织在不同的节中 ...

  4. P5501 [LnOI2019] 来者不拒,去者不追 题解

    题目链接:来者不拒,去者不追 直接在线查询题目所给的式子是很困难的,我们考虑单点考察贡献.对于一个已经确定的式子,我们发现加入一个数或者删除一个数的贡献如图所示: 如图所示,在原有的序列为 \((1, ...

  5. [FATAL] [DBT-06103] 端口 (1,521) 已在使用

    今天参考之前文章 Oracle 19c快速安装部署 在一个新的环境进行安装时,发现配置数据库时报错1521端口被占用: [root@OEL7 media]# /etc/init.d/oracledb_ ...

  6. [Kafka]Kafka学习 -- 初识Kafka

    Kafka学习 -- 初识Kafka 参考资料:稀土掘金<图解Kafka之实战指南>https://juejin.cn/book/6844733793220165639 Kafka是一个多 ...

  7. cached地址和uncached地址的区别

    cached地址和uncached地址的区别是 对cached地址的访问是委托给CPU进行的,也就是说你的操作到底是提交给真正的外设或内存,还是转到CPU缓存,是由CPU决定的.CPU有一套缓存策略来 ...

  8. Swoole从入门到入土(1)——入坑

    入坑一个话题,总得有入坑的理由.有好多话题可供选择,但是思来想去,对于PHPer进阶与其急着去掌握一门新的语言,匆忙地踏足一个新的知识体系,还不如先把php圈子的技能点攒齐了. 话说Swoole诞生之 ...

  9. 数据抽取平台pydatax介绍

       缘起一:         公司现有数据仓库,是通过kettle从mysql抽取到目标库,运行多年,主要有以下问题, 1,效率低:kettle抽取行数少 2,容错性差:一个表抽取出错就导致后续计算 ...

  10. java使用Timer定时器在指定时间执行程序

    下面是一个利用Timer定时器在每天指定时间执行批处理程序的例子. 有关 java.util.Timer 详细知识请参考API. 值得注意的一点是Timer是单线程顺序执行多个任务的. package ...