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

Seal Liang
海豹工具學

--

Notion 資料庫功能務必理解的觀念。

如果想要在 Notion 中建立具連貫性的系統,就必須要理解並活用關聯性 (↗Relation) 跟資料擷取 (🔍Rollup) 這兩種功能,這兩者對於不同資料間的串連、利用非常重要。(Rollup 因為找不到中文翻譯,暫譯作資料擷取)

其實網路上對於 ↗Relation & 🔍Rollup 的說明文章跟影片滿多的,官方也有介紹的影片,原本有點猶豫要不要介紹這種基本功能。不過,因為我在前幾篇文章中有稍微帶過這兩個功能,礙於篇幅沒有太深入地說明。這一篇就當作是一個補充說明,也會舉一些我個人應用的例子,來進一步幫助讀者理解。

基本觀念

關聯性↗Relation 是在兩個不同的 Notion 資料庫之間建立連結,而 🔍Rollup 是進一步去擷取關聯資料的其他欄位資料,也就是必須要先建立 ↗Relation 才能夠進行 🔍 Rollup。

關聯性 | Relation

↗Relation 代表的是資料庫中,資料之間的連結關係。

<Notion Personal Project Management | 個人專案管理工具>有提到過,關聯性資料庫提供我們不同的視角來觀看同一個系統,每個資料庫的視角適用於不同的應用情境。

下圖是大部分在解說 Relation & Rollup 概念時會舉的範例,從產品資料庫的視角,可以看到哪些客戶購買了這樣產品;反過來從客戶資料庫視角,則是看到不同的客戶各自購買了哪些產品。

產品與客戶資料庫

資料擷取 | Rollup

🔍Rollup 則是進一步抓取關聯資料中其他欄位的資料,在這個例子中,我們在客戶資料庫中,透過 Rollup 功能,擷取關聯產品中的價錢欄位,並加總起來,成為客戶訂單的總額。

簡單來說,就是登錄客戶訂了什麼樣的產品,系統就自動幫你擷取價格資訊並算出他要付多少錢。

下圖就是這樣的系統在 Notion 中的實作,可以看到左邊是產品資料庫,右邊則是客戶資料庫。資料庫的↗關聯代表哪些客戶買了哪些產品,而最右邊的 🔍 Total Purchase 欄位則是透過 🔍Rollup 擷取產品資料庫的價格資訊並加總數字。

經典 Notion 客戶與訂單範例

這個經典訂單系統範例,因為只是一個簡化的概念示範,在使用上會遇到一個很基本的問題:因為架構設定的關係,每個客戶同樣的產品無法買超過一個。這樣的訂單系統感覺不是很有用,而且光這樣有點無聊,所以…

我們試著把事情搞複雜一點吧!(這樣講一點吸引力都沒有🤔)

應用範例:改良版訂單系統

在這個新的複雜範例裡面,使用了三個資料庫 (見下圖),分別是:產品、訂單、客戶,這應該算比較合理的配置,除非你的客戶真的都只會消費一次,而且每樣產品不會買超過一件。再加上訂單本身也會有像是:時間、承辦人員跟其他的資訊需要記錄,這些都不適合直接在產品或客戶資料庫中記載。

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

上圖是 Notion 資料庫的結構,下圖則是在 Notion 中實際製作的訂單系統的截圖。

複雜版的 Notion 訂單系統

在這個新的訂單系統裡面,產生了產品、訂單、客戶這三個不同的視角,讓我們可以在不同的使用情境下,看到最相關的資訊。

  1. 從產品的角度,我們可以看到基本的產品名稱及價錢,並且看到產品在哪些訂單中出現,透過 🔍 Rollup 也可以從訂單資料庫擷取加總的銷售數量,最後,也可以透過函式 (∑ Formula ) 的功能,將價錢與銷售數量相乘得到產品的總營收數字。
  2. 從訂單的角度,則會有訂單客戶、購買的商品、透過 🔍Rollup 擷取的產品價格、輸入購買數量、並將銷售數量與價錢相乘,得到訂單的總金額。
  3. 從客戶的角度,可以看到客戶有哪些訂單、並透過與訂單資料庫的 Rollup 加總客戶消費的總額。

當然這個系統本身還有不夠完善,像是目前訂單雖然可以訂超過一個的相同產品,但一筆訂單只能放一種品項其實不太合理,不過要解決這個問題,會再往上堆疊複雜度,還有大幅增加篇幅,所以我們暫且在這裡打住吧。

其實如果想要的話,系統本身還可以再延伸,像是往左邊 (以上面的版面來說),可以再增加一個進貨的資料庫,與產品資料庫做關聯,可以透過產品的進貨數字及銷售數字計算出庫存,變成一個更完整的進銷存系統,使用的方法跟前面差不多,有興趣的人可以自己玩看看囉。

NEXT

上面的 Notion範例,放在這裡有興趣的可以下載來玩玩看,接續這一篇,會在下一篇文章 <Notion Relation & Rollup | 關聯性與資料擷取 — Part 2/2> 中,介紹一些我自己的系統中,↗Relation & 🔍Rollup的應用情境。

如果這得這篇文章有點幫助,請不要忘記給我一點鼓勵跟回饋喔🥸。

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

--

--