Notion Relation & Rollup | 關聯性與資料擷取 — Part 2/2

Seal Liang
海豹工具學

--

這篇接續上一篇 <Notion Relation & Rollup | 關聯性與資料擷取 — Part 1/2>,文章中介紹了↗Relation & 🔍Rollup 的經典範例 —訂單系統,並且更進一步示範了如何利用同樣的原理改良成更合理的系統。

在這一篇中,我會介紹一些在我自己的系統中應用這些功能的情境。

我的應用情境

做完上面的訂單系統,我想大部分人都用不到這樣的東西。不過,以觀念來說,這樣的架構我其實已經在 <Notion Personal Project Management | 個人專案管理工具> 中介紹過,可以應用在個人的專案及任務管理上。

專案 — 任務 — 週規劃系統

除此之外,以下舉幾個我使用↗Relation & 🔍Rollup的應用例子。

1. 計算專案總花費時間

在談個人專案管理的文章中沒有特別提到,但這是在我個人的系統中有使用到的功能,在專案上花費的時間是很有用的量化指標。

下圖的例子,是在專案資料庫中,透過 ↗Relation & 🔍Rollup ,抓取完成個別任務所花費的時間,加總計算專案的時間。不管是個人或者是團隊專案中,可以計算出所花費的時間資源,並用來評估專案的 ROI。

個別任務花費時間 → 專案總花費時間

2. 利用關聯資料庫的欄位進行資料篩選 (filter)

在 Notion 中,我們常常需要利用篩選器 (filter) 來篩選顯示的資料,但有時候所需要的篩選條件在其他的資料庫中。

下面的例子就是在任務資料庫中擷取所屬專案狀態的標籤,並且設定篩選器,不顯示專案狀態為 “Pending”的任務,畢竟,專案都暫停了,顯示它所屬的任務只是佔版面而已。

根據專案的狀態來篩選顯示的任務

3. 減少重複輸入

在 Notion 的應用中,我們希望系統可以盡可能地自動化,減少不必要的輸入;如果需要輸入,則盡量同樣的資訊只輸入一次。

因此,透過 Rollup 取得其他資料庫中已經輸入的資料,就是其中一種減少輸入的方式,在 <Notion Weekly Management System |每週任務規劃系統> 中,就是使用這樣的方式來取得時間資訊。

由於任務 (Task) 資料庫跟每日追蹤(Daily Traking)資料庫中,都沒有時間資訊,因此透過與每週規劃資料庫的關聯性,取得期間 (Duration)的最早日期(Earliest Date),並透過這個資訊與星期幾 (Day of Week) 計算出任務執行及每日追蹤的日期資訊。

任務資料庫中,利用與每週規劃資料庫的關聯,取得當週起始時間

🔍Rollup 祕技:擷取兩層以上關聯資料

最後,由於系統的限制,Notion 中沒有辦法 🔍Rollup 另一個 🔍Rollup。以第一個訂單系統為例,是沒辦法直接從客戶資料庫中 🔍Rollup 隔兩層關聯的產品資料庫中的資訊。但是沒關係, Notion 就是有很多的 Workaround 🥸。

改良版訂單系統 Notion 資料庫結構

假設我們想要在最右邊的客戶資料庫中,取得最左邊的產品資料庫中,的產地(Made in)資訊 (見下圖第一欄位)。

產品資料庫的產地 (Made in) 欄位

我們可以先在中間的資料庫中建立 🔍Rollup,取得產地資訊,再利用函式欄位來鏡射 (Mirror) 這個資訊。(如下圖第一、二欄位,簡單來說,就是讓新增的欄位等於原來的 🔍Rollup)

建立 Rollup 並以函式鏡射資料

最後客戶資料庫中,建立 🔍Rollup 取得上一步鏡射的資料欄位,完成!(見下圖第一欄位)

Rollup 上一步鏡射的欄位

雖然這個例子大概不算很合理的應用,得到的資料是客戶所購買產品的產地分布,不確定可以做什麼。不過,還是證明可以透過這個方法,進行多層的 🔍Rollup,有需要的可以試試看這個方法。

總結

原本只是想要簡單解說 ↗Relation & 🔍Rollup 的功能,結果寫得比我預想的長很多。如果覺得這篇文章有對你有幫助,請不要忘記幫我拍手並給我一點回饋🥸。

如果喜歡這一篇文章,也歡迎點進我的〈Notion 文章目錄〉,裡面有更多關於 Notion 章。

--

--