Notion之所以能成为一款好评如潮的效率笔记软件,其Database资料库功能可谓是功不可没。一般来说,使用一张Database表格即可满足我们的工作需求;然而在团队工作或大型项目中,我们可能需要在一个表格中引入另外一个表格的数据,而Notion Rollup和Relation属性就是用来联接不同数据库的必备工具。
由于Relation和Rollup都是Database中的属性(Property),建议不熟悉Notion Database的同学先阅读下面这篇文章,这会对你掌握relation和rollup属性有所帮助:
目录
Relation和Rollup的作用和区别
Relation的作用
Relation是Notion数据库中的一种属性(property),在数据库中创建一个Relation属性,相当于在数据库表格中增加一列,该列可以关联其他数据库表格的数据。具体来说,你可以在该列中选择插入关联数据库中的一条或多条记录(items),有点类似Select属性。在选择关联数据库时,你可以选择其他数据库,也可以选择当前数据库。
一般来说,两个相关联数据库可以用父-子关系来描述。即一个数据库提供分类、分组数据,另一个数据库则提供分类下的个体数据。一个分类下面可能包含一条或多条个体数据,而一条个体数据只能有一个分类,前者扮演“父亲”的角色,后者扮演“儿子”的角色。
这里有一些典型的父-子关系数据:
- 厂商和产品
- 项目和子任务
- 目标和步骤
- 作者和文章
- 专辑和单曲
- 年份和月份
- 班级和学生
- 团队和成员
- 公司和部门
当然,Relation还可以建立非层级关系,这样的例子有:
- 文章A和文章B相互引用; 这种关系,可通过Relation关联当前同一数据库实现。
Rollup的作用
Relation可以让当前数据库与其他数据库产生联系,并且Relation属性列可以选取关联数据库中的个体(items)填充到数据表中。而Rollup属性完全建立在Relation的基础上,在用Relation选取好关联的个体后,我们可以用Rollup来对个体的数据进行计数或统计。
举个例子,我们可以用Relation在班级数据库和学生数据库之间产生联系,从而把学生个体分配到不同的班级里;而Rollup则可以用来获取、统计学生个体的各项数据,如成绩、身高、体重、年龄等等。
Rollup功能避免了手动输入、统计数据所带来的种种麻烦,并且可以让你轻松整合来自不同资料库的数据,实现更多更复杂的分析功能。
两者的区别
使用Relation有什么好处
如前所述,Relation起到的作用有点类似Select,通过下拉菜单选填表格。但与Select或手动输入文字相比,Relation有许多好处,总结起来有以下这些:
保证所有数据准确一致
通过Relation来关联一个中心数据库,然后从这个中心数据库里抽取数据,可以最大程度保证所有数据的准确、连贯和一致。
如果你选择手动输入数据,很可能会出现这种情况:当输入公司名称时,你比较喜欢输入「阿里」,而其他人可能喜欢输入「阿里巴巴」或「alibaba」,那么就很容易产生混乱,从而影响到后续的筛选和排序功能。
而使用Relation功能,你只需要维护好中心数据库的数据,而不需要把精力分散到工作区的其他数据库上,极大提高了数据的准确性和一致性。
减少冗余数据提高效率
使用relation来关联其他数据库,并从中获取数据,可以避免重复输入相同的数据。
举个例子,下面的两个数据库——「联系人」数据库和「产品」数据库,他们都引用了「公司」数据库中的数据,从而避免了重复输入公司名称。
便于筛选数据
2个数据库之间通过Relation建立关系后,可以实现自动筛选功能,即通过「父数据库」来筛选出「子数据库」中的数据。
例如,我们通常会用班级来筛选学生,用队伍来筛选运动员等。
再具体一点,我们可以通过「公司」数据库,自动筛选出同一公司里的所有「联系人」。
便于统计数据
使用Relation在不同个体之间建立关联后,我们还可以使用Rollup来统计关联个体的数据。而手动输入数据或建立下拉菜单是做不到这一点的。
举个例子,我们在「公司」和「联系人」之间建立联系后,可以进一步使用Rollup来统计公司员工的平均年龄。
起到导航作用
Relation属性不仅可以实现下拉选择的功能,你还可以通过点击Relation中的数据,从而快速导航到制定个体的专属页面。
比如在下表中,点击腾讯公司的联系人列,可以快速前往腾讯员工的个人页面。
如何使用Relation属性
先创建两个不同的数据库
一般来说,Relation用于链接两个不同的数据库,因此我们需要先在Notion中创建2个数据库。
在这里,我们建立了「公司」和「联系人」两个数据库。
使用Relation关联其他数据库
- 在「联系人」数据库中创建新列(即新属性
Property
); - 在属性菜单中,设置新列的名称,例如「公司」或「所属公司」;
- 设置新列的类型(
Type
)为Relation
; - 选择要关联的数据库,你可以通过上方的搜索栏来找到目标数据库,此处我们选择关联到「公司」数据库;
- 此时你可以预览
Relation
所建立的关系,系统默认是建立从「联系人」到「公司」的单向关系; - 最后,点击蓝色按钮
Add relation
即可完成关联。
- 在完成数据库关联后,你可以点击
relation
列下的单元格,通过下拉菜单从关联数据库中选择数据填充到单元格内。
💡小贴士
如果你想重新选择关联数据库,可以重新设置该列的类型(Type)为Relation,然后你便可以在弹窗中重新选择将要关联的数据库。
建立双向Relation
创建relation时,系统默认创建单向关联。不过,你可以通过勾选show on
选项,在2个数据库之间创建双向联系。
当我们在「公司」和「联系人」之间创建双向Relation关联时,两个数据库会同时生成新列并与对方产生关联。下面是创建双向关联的步骤:
- 跟着上文的指引,创建relation新列;
- 在点击
Add relation
前,勾选show on 公司
后方的开关按钮; - 为关联数据库的新relation列命名;
- 点击
Add relation
完成创建。
现在你可以看到「联系人」关联并引用「公司」数据库的同时,「公司」也可以关联并引用「联系人」数据库中的数据。
查看或删除关联页面
当你创建一个relation
后,实际上就是把其他数据库中的页面(page
)储存到了当前数据库的单元格中。
- 点击这些
relation
列下的单元格,单元格旁会弹出关联页面的小窗口,你可以在这个小窗口中打开关联数据库中的页面; - 你还可以在弹出的小窗口中点击关联页面后方的
-
号,从而移除该页面的关联;
- 除此之外,在
relation
列的设置菜单中,你可以通过Limit
来设置一个单元格中可以容纳的页面上限——选项有1 page
和No limit
两项,前者限制单元格只能容纳1个页面,后者对单元格的页面容量没有限制。
如何使用Rollup属性
创建rollup属性
relation
建立起关联页面后,我们可以使用rollup
属性来统计关联页面中的数据。
还是以「联系人」和「公司」数据库为例子,我们想要知道每个公司员工的平均年龄,应该如何使用rollup
来实现呢:
- 首先,要在「联系人」数据库中新建年龄属性,输入每个联系人的年龄;
- 其次,在「公司」数据库中创建一个关联到「联系人」的
Relation
列; - 在「公司」数据库中新建一个
Rollup
类型的属性列,并命名为“平均年龄”;
- 点击
rollup
属性列下的任意单元格,会出现弹窗,可设置以下内容:- 你想要进行统计的
relation
属性列; - 你想要对关联页面中的哪一列(属性)进行统计?
- 你想要应用何种方法进行统计?
- 你想要进行统计的
- 在本例中,我们的统计数据基于「联系人」
relation
属性列,且是对关联页面中的“年龄”属性进行统计,统计方法为平均数(Average
);- 选择完毕后,单元格内即可自动计算每个公司员工的平均年龄。
Rollup的统计方式
rollup可以针对关联数据库中的单个属性进行运算,具体运算方法共有17种,以下是对这些运算方式的简要说明:
- 一般运算:
Show original
:显示关联页面指定属性的原始值,可以显示多个值,值之间以逗号相隔;Show unique values
:显示关联页面指定属性的原始值(不重复);Count all
:计数,计算指定relation
列内有多少个关联页面;Count values
:计数,计算关联页面指定属性有多少个值。如果指定属性有多个非空值(如Multi-Selects
等),这些值也会被计数;Count unique values
:计数,计算关联页面的指定属性有多少个不重复的值;Count empty
:计数,计算关联页面指定属性为空值的个数;Count not empty
:计数,计算关联页面指定属性不为空的个数;Percent empty
:统计所有关联页面中,指定属性为空的比例(百分比);Percent not empty
:统计所有关联页面中,指定属性非空值的比例(百分比)。
- 适用于数值(
Number
)属性的运算方法:Min
:求关联页面指定属性中的最小值;Max
:求关联页面指定属性中的最大值;Sum
:对关联页面指定属性的值求和;Average
:求关联页面指定属性值的平均数;Median
:求关联页面指定属性值的中位数;Range
:求最大值和最小值之间的差(即间距,Max
–Min
);
- 适用于日期(
Date
)属性的运算方法:Earliest date
:求关联页面指定属性值中的最早日期Latest date
:求关联页面指定属性值中的最晚日期Date range
:计算最早日期和最晚日期之间的间距;
- 适用于复选框(
Checkbox
)属性的运算方法(统计复选框勾选情况):Checked
:已打勾复选框计数;Unchecked
:未打勾复选框计数;Percent checked
:已打勾比例(百分比);Percent unchecked
:未打勾比例(百分比)。