ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

用Notion搭建可持续维护的阅读追踪系统:数据库、Relation与Rollup实战

2026/9/4 22:09:38 拓冰建站 浏览量
用Notion搭建可持续维护的阅读追踪系统:数据库、Relation与Rollup实战 阅读这件事长期缺的不是“意志力”而是“反馈”。你买了一堆书看完之后没过多久就忘了你想写点什么又觉得书里那些好句子散落在各个 App 里真要找的时候反而一个都捞不出来。于是很多人把希望寄托在 Notion 上搜了好几个阅读模板导入之后发现密密麻麻的属性反而把自己劝退最后那页数据库永远停在第一次打开的界面。问题出在哪里不是 Notion 不好用而是大多数阅读模板在你还没有产生“数据习惯”前就把结构做得太复杂。这篇指南会换一种思路先告诉你一个可持续维护的阅读追踪器需要哪几个库、字段之间是什么关系然后按图书库、金句库、阅读打卡库、系列追踪、统计看板五条主线把 Notion 的数据库、Relation、Rollup、Formula 等核心能力串起来。这套方案的目标很清晰让你每次打开页面时不用思考“下一步填什么”只需要花十几秒录完一本书、一条金句或一次阅读记录剩下的统计会自动完成。1. 阅读追踪器的本质是一套数据模型不是一张收藏夹很多人的阅读追踪做得不好是因为把它做成了“图书馆”。他们把输入重心放在“书名、作者、封面、ISBN、出版社”这些藏书属性上却完全没有记录“这本书和我的阅读行为之间发生了什么”。结果就是录入一本书之后这个条目就永远不会再被打开。追踪变成了自欺欺人的清单而不是帮助你决策的数据系统。一个好的阅读追踪器核心不是“书多”而是“阅读关系多”。我建议把这个系统拆成三层数据模型图书库负责静态信息和阅读状态解决“我有哪些书、读到哪了、读完没有”。阅读打卡库负责动态流水解决“某天我读了多少页、花了多少时间”。金句库负责内容沉淀解决“书里哪些话值得留下、以后怎么找回”。三个库之间通过 Relation关联连接再用 Rollup汇总把流水和金句自动汇聚回图书页。你不需要手动去更新一本书的总阅读页数、金句数量或最近阅读日期因为 Notion 会替你算。简单来说图书库是事实表阅读打卡库是行为表金句库是内容表。这三者一旦打通统计只是副产品。2. 三张表的选择什么时候用 Notion而不是表格工具或读书软件开始搭建之前先做一次方案对比。因为阅读追踪这个需求本身有多种解决方案盲目上手 Notion 并不是唯一正确选项。方案优点不足适合人群Excel / Google Sheets上手快统计方便移动端体验差不适合摘录和内容沉淀只想统计数量和评分豆瓣 / 独立读书 App书目信息全社区氛围好难以定制字段书摘导出麻烦轻度阅读记录Notion Database建库自由Relation / Rollup 打通阅读记录与金句初次搭建有学习成本想长期维护、形成个人阅读系统的人传统笔记软件适合写长笔记信息之间没有强结构无法形成统计只做深度书评我推荐 Notion是因为阅读追踪器天然有一个特征它不像记账软件那样只关注“金额”也不像书单工具那样只关注“书目”。它需要在一个地方同时完成状态管理、过程记录、内容摘录和结果统计。如果不刻意设计数据关系最先失控的一定是那些随手摘录的句子它们散落在不同笔记里没有和原书产生关联。如果你还在犹豫可以先想一个问题你现在的记录习惯每天能新增多少条数据如果一周只能录入一本书那么 Notion 的灵活性对你来说没有任何意义但如果你的目标是持续记录一年那么数据库关系和自动化带来的收益会远超最初搭建那半小时成本。3. 图书库一个可持续维护的“Book Database”这一节先做最核心的一步搭建图书库。3.1 第一步新建页面和数据库打开 Notion先新建一个主页面比如叫“阅读追踪器”。在这个页面内输入/database选择Table - Inline表格数据库把它命名为“图书库”。在 Notion 中数据库的第一列默认是 Name也就是“页面标题”。对一本书来说书名就是最自然的标题。可以不用单独再建“书名”文本字段避免一个数据库里存在两个容易重复的属性。3.2 图书库字段设计下面是一套兼顾“够用”和“可扩展”的字段方案可以直接照着加字段名字段类型是否推荐作用说明书名Title必选页面标题每本书唯一作者Multi-select推荐使用多选而不是纯文本方便后续按作者聚合分类Multi-select推荐例如小说、历史、技术、管理、自我提升状态Select必选想读、在读、已读完、弃读、二刷开始日期Date推荐当前“这一遍”开始阅读或打算开始的日期完成日期Date推荐读完的日期用于计算阅读耗时页数Number推荐全书总页数用于统计一年阅读总量评分Number推荐建议使用 0-10 或 0-5不要用 Select否则无法求平均值系列Select可选系列丛书名称比如“三体”“那不勒斯四部曲”卷号Number可选当前是系列中的第几卷配合系列名排序阅读方式Multi-select推荐纸质书、微信读书、Kindle、其他一句话总结Text推荐每本书最多写一句话降低维护压力这里有一个很容易被忽略的设计理念把“作者”和“分类”设置成 Multi-select而不是 Text。原因很简单Text 属性在筛选中不是不能分组而是分组时会出现“同一个作者因标点、空格不同被切成两个组”的情况。Multi-select 能保证你输入“刘慈欣”后后续所有书都可以直接从候选项里点选统计时不会出现重复项。3.3 新建一条书的录入步骤在表格顶部点击“ New”程序会自动创建一个新页面。按顺序填写属性即可。以一本书为例书名你当像鸟飞往你的山 作者塔拉·韦斯特弗 分类传记 状态在读 开始日期2025-01-10 页数390 阅读方式纸质书需要注意开始日期和完成日期应该代表你“当前这一遍阅读”的起止。不要写“首次出版时间”或“我决定开始想读的时间”。3.4 用 Formula 自动计算阅读耗时当图书库中已有“开始日期”“完成日期”“状态”三个字段后可以添加一个 Formula 属性命名为“阅读耗时天”。公式如下if(prop(状态) 已读完, dateBetween(prop(完成日期), prop(开始日期), days), null)这段公式的逻辑是如果状态为“已读完”就计算完成日期与开始日期相差的天数否则返回空值。这样做的价值在于它只统计真正读完的书避免“想读但一直没开始”的书干扰平均耗时。阅读耗时不是用来炫耀速度的数据而是用来判断自己是否在长期阅读时出现“买了一堆大部头但从来没有完成”的信号。3.5 图书库的最小视图配置图书库创建完成后默认只有一个表格视图。建议再添加两个视图一个视图叫“当下在读书”过滤条件是 状态 是 “在读”。一个视图叫“年度已读”过滤条件是 完成日期 在 本年并按 完成日期 排序。这两个视图能让你每次打开电脑或手机第一眼就看到“现在该读什么”和“今年已经读了什么”而不是每次都要重新筛选。4. 金句库让摘录和页面产生真正的链接很多人的摘录流程是把一本书记录在一本笔记里再单独开一个“好句摘抄”类笔记。这种做法的坏处是你未来检索句子时必须先想起来“这是哪本书里的”然后一层层打开文件夹。在 Notion 中正确做法是单独建一个金句库通过 Relation 与图书库关联。4.1 金句库字段在阅读追踪器主页中新建第二个数据库命名为“金句库”。字段名字段类型作用说明内容Title金句原文来源书籍Relation关联到“图书库”页码Number电子书可记录百分比纸质书记录页码主题Multi-select例如“勇气”“方法论”“写作技巧”“决策”为什么摘录Text用一两句话说明这句话触动了你什么收藏Checkbox是否需要定期回读这里面最关键的是“来源书籍”这个 Relation 属性。4.2 如何创建 Relation在金句库的属性列中点击“New Property”选择 Relation然后在弹窗中选择“图书库”。系统会让金句库里的每一条记录都能链接到一本书上。创建完成后以一本“图书”数据库里的页面为例你可以在书页底部输入/linked database插入一个金句库的链接视图然后给这个视图加上过滤条件来源书籍 contains 当前页面这样打开一本书的专属页面时页面下方会自动展示所有与该书链接的金句不需要你手动整理。后续想为某本书补充金句时直接在最下方的链路视图中点“New”再选择“当前页面”作为来源即可。“金句库”与“图书库”之所以用 Relation 而不是用 Select核心原因是Select 只是一个文本标签无法在另一本书的页面上反向聚合。只有 Relation 才能让 Notion 知道这些数据之间的复合关系。4.3 金句不是越多越好金句库最大的使用误区是“每一句话都摘”。值得摘录的句子通常满足至少一个条件观点足够新冲击了过去的认知表达足够美值得反复朗读句意对行动有指导作用。为了逼迫自己做减法我给每条金句都设置了“为什么摘录”字段。这条文本字段并不需要写长篇大论只要求一句话解释“当时为什么想保存”。如果一条金句过了三天后你完全想不起来当初为什么摘它那就说明它本来就不重要。5. 阅读打卡库把一页页的阅读变成自己的行为时间线有时候我们会陷入一种状态明明读过很多书却说不清楚自己的阅读习惯。要让阅读系统真正发挥作用只靠图书库状态还不够。图书库只能回答“读完了没有”这个离散结果回答不了“你的阅读节奏是快还是慢”“晚上读书多还是周末读书多”“一本书实际花了多少个小时”这些问题。这个时候就需要引入第三张表阅读打卡库。5.1 阅读打卡库字段设计在阅读追踪器主页新建第三个数据库命名为“阅读打卡”。字段名字段类型作用说明日期Date用于记录某一天或某一次的阅读发生时间书籍Relation关联到图书库开始页Number本次阅读开始的页码结束页Number本次阅读结束的页码阅读时长分钟)Number本次实际阅读时长环境Select通勤、午休、睡前、周末等阅读感受Select专注、走神、一般、流畅设计思路上图书库存的是“书目档案”阅读打卡库存的是“每一本书的年度流水”。你把“阅读打卡”当成一张流水表后每一条记录不再需要反复编辑之前的内容录入成本很低。5.2 自动计算本次阅读页数新增一个 Formula 字段命名为“本次页数”公式是prop(结束页) - prop(开始页) 1之所以要 1是因为如果你从第 20 页读到了第 30 页实际读了 11 页而不是 10 页。看似只是一个小细节但在统计全年阅读总页数时会悄悄积累误差。5.3 把打卡记录 Rollup 回图书库在图书库中添加一个 Rollup 字段选择来源是“阅读打卡”库中的“书籍”这个 Relation 属性再选择统计值为“页数”的 Sum 聚合。这样一本书的卡片上就会自动出现一个数字这本书累计被记录的阅读页数。你可能会问为什么不直接读这本书的“页数”字段因为“本次页数”是你在阅读打卡库通过公式计算出的实际页数而“页数”字段是全书静态页数。对于一本 300 页的书如果还没读完Rollup 出的累计页数要小于 300如果读完了两个值应当大体接近。这个差别本身就是进度你的阅读记录不再只是“已读/在读”两种状态而是“已经投入了多少真实页数”。5.4 每周复盘用视图给阅读打卡库添加一个 Board View按“日期”分组或按“书籍”分组。如果按“书籍”分组你能直接看到每一本书的阅读流水分布从而发现自己是不是读了 50 页就换书、然后再也回不来。如果你更关心日活状态可以按“日期”分组看看哪些真正读得下去。6. 系列追踪三种不同复杂度三种不同选择“系列”是阅读追踪里最容易被做坏的部分。很多新手会在图书库中单独建字段“系列名”这没问题但一旦你的系列横跨几十本书、还经常横向比较阅读进度纯靠文本字段就不够了。建议先判断自己属于哪一类再决定用哪种方案。6.1 常规方案图书库 Select 字段 分组视图如果你只是偶尔读系列比如一年只读一两个系列最简单的方法是在图书库中保留“系列”这个 Select 字段并单独建立“卷号”的 Number 字段。添加一个分组视图将“系列”设为分组然后按“卷号”排序。这样筛选与浏览完全不需要多余数据表所有操作都发生在原有图书库内部。优点维护成本低书目录入时无需先到“系列库”新建一个系列再从列表中选择。6.2 进阶方案独立“系列”数据库与 Relation如果你阅读系列频率很高需要记录整个系列的相关信息例如“系列总卷数”“系列起点”“系列背景”“当前看到第几卷”那么这个需求已经超出一本书的字段范围应该单独建库。新建数据库“系列”然后在这本书库中新增属性“所属系列”类型选择 Relation目标数据库是“系列”。这样可以在系列页面中汇总“该系列共有多少本”“其中几本已经读完”“当前平均评分”等信息。这里要注意Relation 不是普通标签而是把一本书和一系列卡片连接起来。数据入库时需要先在系列数据库创建“三体系列”页面然后回到图书库为对应书目选择“所属系列”。我依然提醒在数据习惯还没建立起来之前优先选常规方案。普通读者最需要的不是一套可以管理 100 个系列的复杂系统而是让自己坚持录入三到五本。6.3 不要为了系列放弃阅读本身系列追踪最容易引发一个问题为了把《三体》系列整理得井井有条你花了两小时配置数据库却连第一部第一页都没翻。所以实际操作中的建议是先把常规方案跑通等到开始阅读下一个大系列时再来决定值不值升级为独立系列数据库。数据模型永远只是为了减少阻力。7. 统计看板用 Rollup 和过滤视图完成年度阅读统计阅读系统做到这里数据已经齐全了。接下来要把数据变成可读的统计和看板。7.1 常见的统计字段书籍库是天然的数据源。下面几种统计最常用年度阅读数量对“完成日期”的本年书籍做计数。读完图书的总页数用图书库中的“页数”字段求和。平均评分用图书库中的“评分”字段求平均。单本阅读耗时用前面写过的 Formula 字段“阅读耗时天”。在 Notion 表格底部你可以直接点击表格下方的“Calculate”选择 Count、Sum、Average 等聚合方式。如果想做按年统计可以在表格视图上方添加过滤条件完成日期 is in 2025如果你想一次性看到多年阅读量那么可以按年份创建一个 Timeline 视图或者用一个公式字段把完成年份提取出来。但这一层对普通用户而言并非必需最朴素的过滤视图已经足够用于复盘。7.2 搭建首页看板整个“阅读追踪器”主页面建议保留三个区域第一个区域是“当前在读”。插入图书库的一个链接视图过滤条件为状态是“在读”。第二个区域是“今年已完成”。插入图书库的另一个链接视图过滤条件为完成日期在“今年”。第三个区域是“最近摘录”。插入金句库的链接视图并按时间倒序排列。页面结构大致如下阅读追踪器 ├── 图书库 ├── 金句库 ├── 阅读打卡 └── 看板区域 ├── 当前在读过滤视图 ├── 今年已完成过滤视图 └── 最近摘录过滤视图这种设计把“日常录入”和“数据浏览”统一到了同一个页面不需要在多个 tab 之间跳来跳去。这也是 Notion 数据库“链接视图”与传统表格最大的区别同一个数据源可以通过多个视图以不同形态呈现在不同页面。7.3 目标进度推荐使用 Progress Bar 公式如果你想给年度目标设计一个进度条可以在一个独立的统计页中创建两个数字属性“年度目标本”和“已读本”然后用 Formula 字段显示百分比。公式可参考format(round(prop(已读本) / prop(年度目标本) * 100)) %这类字段建立起来非常容易但同样容易被忘掉。更好的做法是把它放在“看板区域”最顶部每次打开时只扫一眼就知道自己是否处于落后状态。8. 快速录入与日常维护如何避免数据中断再优秀的数据库如果录入成本过高也会在第三周被放弃。我的建议是先刻意降低频率不要追求每一页都记录而是每天只在固定时间进行一次“阅读打卡”。固定使用路径可以是每天读完书后打开 Notion 手机端直接进入“阅读打卡”数据库输入日期、书籍、开始页、结束页总耗时不会超过 20 秒。每周日在“阅读追踪器”看板页面复盘一次补充“当前在读”的状态变化。每月做一次金句整理把微信读书等平台中标注的句子集中复制到 Notion在“来源书籍”字段中选书。“记录”这个动作必须短到不可能忘记否则任何系统都活不下来。如果当前还没养成习惯可以先只记录“打卡”这一张表图书库字段只更新状态和完成日期不着急把评分、阅读方式、阅读感受全部填完。不要试图一次把过去五年读过的书全部补录那种大扫除式的启动方式最容易让人疲劳。实际目标是把“从今天开始”的数据持续记录三个月。三个月后已经足够形成一定规模的年度数据。9. 常见问题排查与解决思路搭建过程中最常见的问题几乎都集中在 Relation、Rollup、Formula 这三个环节问题现象可能原因排查方式解决方案关联属性里找不到想要的数据库Relation目标选错了数据库或新建数据库时没有存在同一个页面层级右键点击关系字段的设置检查目标数据库重新新建 Relation 并选择正确的目标数据库Rollup 显示空白或异常Rollup 的来源不是 已经关联那两个数据库的表 的 Relation 字段打开 Rollup 设置查看 Relation 是否指向正确先确认两张表之间已经存在 RelationFormula 一直报 Syntax error属性名称或函数拼写不准确检查字段名是否有空格/全角字符属性名用中括号内英文或用新增视图确认避免全角标点阅读打卡记录不回传图书库打卡表中的“书籍”属性没有与图书库建立 Relation打开该打卡页属性查看“书籍”是否可选到书修改 Relation 设置统计表格的 Calculate 没显示合计表格下方聚合区域被折叠鼠标移动到表格底部点击 Calculate 选择 Count、Sum在手机端看不到某些视图部分视图在移动端性能受限查看数据库 View 区域是否在页面加载中等待加载或减少单一视图中的大量页面其中“Formula 一直报错”是最常见也是最容易用错全角半角的问题。Notion 的公式只支持半角字符中文引号、中文逗号都会导致整段公式失效。如果公式不熟悉正确姿势是先使用简单的字段类型比如把评分、页数、状态加好等后续需要时再逐步添加公式字段。公式字段确实强大但 Notion 中的大多数统计其实也可以通过基础聚合完成。10. 阅读系统的工程化建议当你把图书库、金句库和阅读打卡库全部搭建完后建议进行一轮“工程化”检查下面几条是我认为最有价值的第一保持字段命名和枚举值统一。比如状态字段只用五种值想读、在读、已读完、弃读、二刷。不要在同一天里面把“已读”和“已完成”“读完”混在一起否则后续统计会非常困难。第二尽量别在文本字段里写日期。日期必须是 Date 类型才能参与 dateBetween、过滤和日历视图。写在文本字段里的日期是死数据无法被计算。第三金句库不要做成“收藏夹”。收藏夹的本质是把内容扔进去然后不再打开。金句库应该设定一个“回看周期”每年至少翻阅一次。第四把阅读过程中产生的行动项写入独立的任务清单。阅读一本书后如果想实践书中的方法不要把它塞进阅读打卡的备注里建议在任务管理系统中单独生成任务。负责产出行动的是任务系统不是阅读数据库。第五定期导出备份。Notion 不是本地文件系统数据库结构再完善仍然建议每隔一段时间通过页面右上角的“···”菜单导出备份或者同步到云端避免账号异常导致数据丢失。第六最小权限原则。如果这套系统要用于团队或家庭共享不要给所有人“编辑整个空间”的权限应该只共享某个数据源的特定视图权限。这种权限设计能够避免你不希望被修改的字段被误改。这些原则的核心不是把系统做得越发庞大而是确保持续维护的成本低于复利收益。数据库设计只有持续被使用才不会沦为漂亮的空模板。11. 从这一篇开始如何把方案真正落地如果你面对这篇比较长的指南不知道从哪里下手可以直接按下面三步走第一步先建“图书库”和一个“阅读打卡”数据库录入最近在读的一本书并尝试加一条阅读记录。第二步在金句库中摘录一句今天读到的文字用 Relation 选中这本书的页面。第三步回到“图书库”页面添加“当前在读”视图把整台系统调整成日常入口尝试坚持更新一周。这三步一旦完成你已经建出了一个可以统计页数、记录阅读时长、跟踪系列、沉淀金句、展示年度目标的最小闭环。后续再根据自己习惯的增加视图、添加公式、设置年度目标是在这个闭环上生长而不是重新推翻。真正值得关注的不是“哪本书加入了系统”而是“每一本书有没有在这个系统里留下新的数据”。当你坚持看到图表里季度阅读量的变化曲线或者是年度总结时被不同时期的金句淹没这套让数据自己生长的阅读数据库才算真正完成了使命。