Skip to main content

Notion DB

Notion 中的 DB 並非關聯式資料庫。  
而是一個包含特殊資料格式的 SubPage (DB Page)。
SubPage 中的資料可以以不同 View/Layout 的方式在多處同時呈現。
與資料庫相似的是 Notion DB 同樣具有欄位屬性、瀏覽模式、篩選和排序等功能。
  • DB Page 可以設定為:
    • Full Page Database: 主頁以 Link 方式連接。
    • Inline Database: 主頁可直接同步顯示 DB Page 內容。
  • 主頁中 DB Page icon 無 Arrow,故所有 DB 操作皆同步,包含刪除
  • 建立指令:    / + Database    (非/ + table)。

Table Database

建立方式

  • 基本:   / + database  
  • Main Page 建立 inline DB,導向既有DB。   / + Table view  
  • 點 Table Sheet 名稱可複製 view url。後可貼在其他頁面中。
  • Table vs Database 轉換: 六點工具 ⁝⁝ turn into database vs turn into simple table。

Create Notion Database

Notion Database Converts from Table

額外功能特性擴充

  • 部分額外功能預設為關閉,需自行開啟。   > Customize My Database > Suggested > 選取特性。

Notion DB View 種類

  • Notion DB View 介紹
  • Table、Border、Chart、List、Calendar、Gallery、Timeline 甘特圖等。
  • DB Page 建立時預設會採用 Table View (Layout),類似 Excel 表格。
  • 建立新 Sheet + 時可自行指定 View(瀏覽模式)。
  • Table 右側 可切換 Layout 或其他 Sheet 相關屬性。
  • 同一份資料可以經由 'name > copy link to view' 貼到多處。並為分身客製化成不同長相。
    • 等同於 / + linked view of database

Notion DB Row

  • Notion Database 中的 Row 都隱含代表著一個 SubPage。可展開並做相關 Page 設定。但是並不像一般 SubPage 會在 MainPage 或 Sidebar 上顯示 Links,僅能由 database row 橋接過去。
  • 所以,新增 DB Row 時換面上的按鈕寫的是 New Page。

Notion DB Column 屬性設定

Notion DB 的 Column 官方稱為 Property。
因為不同的入口或是不同類型的 Property ,可修改的屬性不完全一致。此處列出可做 CRUD 異動的相關入口。

  • Database: 直接點 Table Name > Edit view 可修改 Table/column 相關屬性與設定。
  • Database and Property: 點 Table 右上的 可更改屬性。
  • Property: 點 Column Name 可跳出 Property 屬性泊塢視窗
  • 點 Property 圖示可更換。

Edit View


Database Properties Settings


Column Property Settings


表格關聯欄位(跨欄位屬性)

Notion DB 的特殊特性: Database Relation, Rollup, Calculation, Formula 這邊指的是類似關聯式資料庫PK vs FK 間關係、將多個欄位合併計算、將多個行合併計算、或是指定函數來對特定資料做計算。
可以想像成 excel 的 cell 中使用 formula。或是清單的功能。

Relation: 

  • 新增 Main DB Property  + 時選擇 Relation Type 可建立 表格間的關聯
  • PK 是 Main DB 的 Relation 欄位,雙向時 FK 則可以是 Sub 任意欄位。
  • 允許一對多。填寫 Relation 欄位時,會自動帶出 Sub DB Rows 的內容
  • 發布後,點 Main 上 FK link 可以檢視相關 row 的內容。

建立 Relation Property


Relation 指向指定 Sub DB


填寫 Relation 時自動帶入 Sub DB Rows


Rollup(彙總) :  

可以將關聯 Notion DB 資料進行彙總後成為主 DB 的欄位內容。

  • 當 Database 具一對多 Relation 關係時,可以建立 Rollup Type Property。
  • 功能類似 Java 的 Stream。可以整合多個資料以指定的方式呈現,例如:sum, max, joining。
  • 不同 Type 的 Relation 可以有不同的處理工具。
  •  … 🢂 Property (選擇 Sub's column) 🢂 Calculate (決定處理動作) 🢂 show as 🢂 決定呈現方式\(%、圓餅)
  • 如: 在 backlog 顯示相關 tasks 的完成度。
  • Chart View 比較
    • rollup: 為單一 row 下的子單元做計算。統計 subitems 數量/完成度。
    • chart: 為整份 database 做數量/完成度統計。

Calculations:  

  • Rollup 與 column 最下方的 Calculations 比較。
  • Calculations(縱向計算): 依 column 屬性特性,為該欄位進行計算處理。如 Rows 總數/已填未填數量等。 Calculations 範例
  • Rollup(關聯資料計算): rollup 則是整合有 relation 的資料。
  • Formula (row 本身資料處理): 比較 Formula column,允許 row 將自身欄位進行運算進而提供整理資料。Formula 加總 Main Row 與 SubItem 範例

Column Filter:  

  • 同一份 DB 資料,可以使用在不同地方。Filter 則可以為此客製不同呈現方式。
    • 經由   ⋮⋮ 🖱L 🢂 Copy Link 🢂 指定位置 🢂 Paste as Linked Database View 🢂 完成 Referenced View 建立。
  • 建立 filters:
    • column 🢂 Filter 可建立基本 Filters。
    • 已建立的 Filters 會在表格左上方呈現,點下拉選單的   可進入 'Add to Advanced Filters',可用類 SQL 語法組建過濾條件
  • 移除 filters:
    • Filter Docker 右上   可叫出移除選項。
  • 操做:
    • 建立 Filter 時, Docker 會依 Property Type 不同而顯示不同屬性。
    • Filter Docker: 在 name 旁邊有 Operator 下拉選單 可供客製過濾條件。
    • Advanced Filter: 類似 SQL/DSL 操作語法

Filter 建立


Advance Filter 設定


Calendar Property

  • 當 Table/Database 至少有一個 Date Column 時便可轉成 Calendar Layout/ Timeline Layout。
    • Table 上的資料會自動呈現在 Calendar 上。
  • 操作: 使用六點工具   ⁝⁝  
    • 多個 date 欄位時可以: 更改 layout 時指定 'show calendar by' 指定使用的日期。
    • 日曆上的記事: Properties,可設定日曆上要顯示的資訊欄位。
    • 週曆日曆: Layout > Show Calendar as > Week/Month。

Person Property (DB 共編授權)

同一張表格,可以利用 Person Property 來微調每位參與者可見或可編輯項目。

  • Person Property 自動帶入的限 Notion Member 與 Notion Guest。參考 Notion 共編章節
  • Property 為 Person Type 的 Column 是用來設定夥伴的授權。
  • 搭配 filter 限制夥伴可看見的 rows
  • 操作:
    • Owner 先為 Database 增加 Person Property,並決定 Row 與夥伴的對應關係( cell 填寫夥伴帳號 )。
    • 為 Person Column 增加 Filter。利用 Filter operator 與 Advanced Filter 進行限制。
    • 設定 Filter 時 須以夥伴視角來進行設定 。 例如: Person contains ME (ME 指的是夥伴視角,也就是 Cell 中填寫的帳號)。

Unique ID Property

  • 這邊指的是 Workspace 中可以為 Database row 設定一個 唯一識別碼 Unique ID 欄位,來代表該資料列。
    • 目前測試中,只知道可用來辨識 Row 與產生 Detail Page 快捷連結使用。
  • 可自行為 Unique ID Property 設定 prefix。
  • database 中每個 row 都有一個 detail page(滑鼠移置 Name column 會出現 open 提示),用以展示 Row 所有相關資訊。當 Unique ID 串接 BaseURL 可組合出 detail page 所需快速路徑。
    • 例如: https://www.notion.so/UniqueID-9999
    • 設定時,workspace 內不可以有重複 ID prefix。
    • 帳號可見 Workspace/Teamspace 範圍下若出現相同 ID,也會造成快捷連結失效。

https://www.notion.so/IS-1

Formula Property

  • Formula: 依據其他欄位進行運算處理後的整合欄位。
    • 如:計算 start date 與 end date 間的差異,而呈現 data span。
    • 分數高於 60 顯示及格,反之顯示不及格。
  • Notion Formula Basic
  • Formula 2.0 Reference
  • Notion 資料表的突現性質:Formula
  • 操作:
    • Edit Property > Edit Formula > Property 當 Argument > 決定 Formula
    • Docker Panel 上會出現各欄位的基本使用範例。
    • Notion 有為 Formula 提供 built-in functions,ex: if, round, hour, repeat 等

Subitems and Dependencies 

Notion 提供 Tree Table 功能,讓 Table 資料可以樹狀結構呈現。

  • 功能入口: table 右上   > Customize My Database > Suggested > add
  • Sub-Items
    • 添加 Subitems 特性後,在 Row Name 會出現 🠟 符號可用來設定 subitems (直接將 Subitems 拖入即可)。
    • Database Table 下的 Row 可再拆分成 Sub-items (closable, 子單元, tasks) 。如: 主任務可再細分成多個關聯子任務。
    • Table 最下方的 rollup 計算數量或加總時會以 main row 為準 (忽略 subitems 數量)
    •  … > Customize > Sub-items 可以移除階層顯示獲設定 sub-items 顯示方式。
  • Dependency
    • Dependency 用在 連續事件的時間規劃 ,Column Property 須為日期區間類別。
    • 前提條件: 用在 Timeline layout 且 Database 必須有日期欄位(開啟 end date)。
    • 作用: 當在 UI 拖拉時間區段時,可自動維持 shift 其他時間區段。或是融合成為子時間區段(轉成 sub-item)。

Add Subitems(Tree Table) / Dependencies 功能

Tree Table

Dependency


編輯技巧

  • 批次修改: 滑鼠點 Row 前方,或勾選前方 checkboxes。被選取部分會出現底色。可出現 Docker 用來批次編輯指定 column。
  • Rollup and Calculations 進行資料統整
  • 利用 Person Property 與 Column Filter 限制共編夥伴可看到的資料範圍

Relation 與 SubItems 比較

  • 使用場景 使用 Relation ➝ 需要關聯不同類型的資料,例如「專案」對應「負責人」、「訂單」對應「客戶」。 使用 Subitems ➝ 需要階層式管理,如「年度目標」包含「月度目標」,「任務」包含「子任務」。

| 功能 Notion Relation Notion Subitems | 主要用途 連結不同資料庫或相同資料庫內的項目 在同一資料庫內建立層級結構(父項目與子項目) | 數據結構 透過 Relation 建立「多對多」或「一對多」的關係 透過層級架構建立「父子關係」 | 顯示方式 以關聯屬性顯示在表格中,可手動選擇關聯項目 以展開/折疊方式顯示在項目下方 | 範圍 可跨資料庫連結不同項目 只能在相同資料庫內使用 | 與 Rollup 搭配 可搭配 Rollup 彙總關聯數據 不支援 Rollup(但子項目可手動統計) | 適用場景 1. 將「專案」與「任務」關聯起來 | 2. 連結「客戶」與「訂單」等不同資料庫 1. 需要明確的父子層級,如「公司目標」與「子目標」 | 2. 任務分解,如「開發功能」→「子任務」 | 靈活性 非層級式結構,適合關聯不同類型的數據 層級式結構,適合組織內部層次 | 限制 1. 需手動建立關聯,無法自動同步子項目 | 2. 不適合單純的父子層級架構 1. 只能在單一資料庫內使用,不能關聯不同資料庫 | 2. 目前不支援 Rollup 進行數據彙總