Notion DB 的動態與靜態 ID

更新於 2024/12/23閱讀時間約 5 分鐘

前言

在資料庫管理中,「唯一值」對於資料編號非常重要,而這種唯一值必須符合兩個特性:

  • 不可重複
  • 不可空白

以前,我們最常使用的是 Notion Things 提供的動態 ID 設置方法,不過,官方在 2023 年 05 月(更新編號2.30)更新了ID()屬性,實現了不可重複且不空白的 ID 設置,你可以根據自己的需求選擇使用哪種方法,下面我們來細說細說。

創建 ID 的方法

資料庫的 ID 屬性

Notion 中的ID屬性是一種簡便的自動編號屬性,除了可以自動生成數字外,還能在前方加入資料庫的自訂前綴。

raw-image

此設置方式雖然簡單,但其缺點在於,它生成的 ID 是靜態的。如果在資料庫中刪除某些項目,該項目的 ID 編號不會重新分配,留下數字上的空缺。當然,有些時候這樣的空缺是必要的,依照每個人的需求而定。

動態 ID 的設置

如同前面提到的,這個動態 ID 的設置方式是在 Notion Things 的文章中學習到的,我們除了要學習他的架構以外,還要把這個公式升級為 2.0 的編寫模式。

  • 使用公式 id() 來生成每筆資料的「Long ID」。
  • 建立一個母資料庫,將所有 Long ID 集中在同一個列表中。
  • 由於 Long ID 是按順序排列的,接下來可以使用正則表達式(Regex)來去除無關字符,並計算其中逗號的數量,再加一就能得到動態的 ID 了。
/* 子資料庫的 Long ID */
id()

/* 母資料庫將所有 ID 集結成列表*/
map(prop("子資料庫"), current.prop("Long ID"))

/* 子資料庫的動態ID */
lets(
/* 顯示 ID 列表 */
ID_List, map(prop("母資料庫"), current.prop("ID 列表")),

/* 將列表中相同資料變成 ★ 號 */
替換相同, ID_List.replaceAll(prop("Long ID").format(), "★"),

/* 去掉所有的資料,保留 , 號 */
逗號, 替換相同.replaceAll("[^★]*$", "").replaceAll("[^,]", ""),

/* ID 序號 */
ID, 逗號.length() + 1,

ID
)

此方法有兩個缺點:執行速度稍慢(因需要串接不同的資料庫),且需自行撰寫公式。

然而,它的優點在於具有動態性——當資料刪除時,ID 會自動遞補。以下圖為例,當刪除動態 ID 為 4(官方 ID 為 6)的項目後,動態編號會自動遞補,而官方的靜態 ID 則直接缺少了「編號 6」。

raw-image

優缺點整理

raw-image

範例頁面

動態與靜態的 ID

心得分享

注意到這篇中運用的正則表達式 (Regex) 和〈Notion Formula 2.0 § 找重複資料〉中的技巧相似嗎?🤭或許 Ben Smith 在撰寫公式時也參考了 Notion Things 文章裡的寫法!

自己平時使用 ID 屬性的機會不多,即使使用,也多選擇官方 ID 設置,因為它已滿足我對資料唯一性和不空白的基本需求。此外,由於 ID 屬性通常並非顯示重點,我也不會過於在意其空缺。

其實這篇文章是我臨時加的,發現時常有新的 Notion 玩家在社群中詢問 ID 設置的相關問題,這或許是大家在玩 Notion 一段時間後,開始對資料庫管理提出更高要求吧!希望這篇能對大家有幫助✨,也希望大家都玩得開心❤️。

參考資料

avatar-img
134會員
86內容數
小小的細縫裡,夢想的小苗也會萌芽。 我想在餘生中,體會生命的感動和奧秘。 透過仔細觀察,將發現世界不同的美好。 歡迎你來到 ~ ♡ Chloe 的小世界 ♡
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Chloe小窩 的其他內容
如何在 Notion 的資料庫中尋找重複值,包括姓名及日期兩個範例。包括使用正則表達式以及日期轉換為字串的技巧,以提昇查找的精確度。
在 Notion 中使用公式 2.0 版本來生成隨機數,提供自動更改及按鈕觸發兩種模式。
Notion Formula 2.0 日期公式運用:找對應日期、日期區間的判斷與轉換
透過使用公式 2.0,使用者可以自定義時間標籤,清晰地顯示任務的安排及空白時段。
Notion Formula 2.0 日期公式運用第三篇:如何在 Notion 中使用公式製作迷你月曆。
Notion Formula 2.0 日期公式運用第二篇:工作日計算(可自訂國定假日、特殊假期)
如何在 Notion 的資料庫中尋找重複值,包括姓名及日期兩個範例。包括使用正則表達式以及日期轉換為字串的技巧,以提昇查找的精確度。
在 Notion 中使用公式 2.0 版本來生成隨機數,提供自動更改及按鈕觸發兩種模式。
Notion Formula 2.0 日期公式運用:找對應日期、日期區間的判斷與轉換
透過使用公式 2.0,使用者可以自定義時間標籤,清晰地顯示任務的安排及空白時段。
Notion Formula 2.0 日期公式運用第三篇:如何在 Notion 中使用公式製作迷你月曆。
Notion Formula 2.0 日期公式運用第二篇:工作日計算(可自訂國定假日、特殊假期)
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
已經存在在table裡面的那些record做更新。 ※ 語法 UPDATE [LOW_PRIORITY] [IGNORE] table_name SET column_name1 = expr1, column_name2 = expr2, … [WHERE
Thumbnail
只需要一個資料庫就可以做到各種不同的用途顯示 像紙本的五年手帳一樣,可以自動回顧「過去的今天」的日記模板要如何設定? 函數設定的思路與教學都在這邊了! 免費日記模板下載
Thumbnail
※ 把record加到table有兩種方式: VALUES • SELECT ※ 語法 INSERT INTO VALUES 語法: Record 代表一組值的集合,每個值對應到表格中的一個欄位(column)。 INSERT INTO 語法用來指定要插入資料的表格。 需要提供一個
Thumbnail
※ 別名: 目的在於提高SQL查詢的可讀性和簡潔性。 ※ 別名有兩種: Column Alias(列別名):在查詢結果中的某一列,取一個臨時的新名字。 Table Alias(表別名):給查詢中的表取一個短暫的新名字。 ※ Column Alias ※ 為什麼需要 Column A
Thumbnail
※ GROUP BY 用於將數據表中的數據按照一個或多個列進行分組。例如在處理一個表格的資料時,可以指定欄位,一個或是多個,然後把將其視為ID進行分組處理。 ※ 語法 SELECT column1, column2, ..., aggregate_function(column) FROM
※什麼是資料 : 說明: 「資料」(information/data) 是網路應用程式的核心。 使用者分享的照片、電商販賣的產品,或是搜索引擎提供的餐廳評價都是資料。 主要特徵: 生活中任何基本的事實 (fact) 或是值 (value) 都可以被稱為資料。例如:你的名字、你的生日。 因
Thumbnail
題目敘述 題目會給我們兩張資料表。 第一張資料表是Employees 裡面分別有id、name等欄位。這張資料表的id是主鍵。 第二張資料表是EmployeeUNI 裡面分別有id、unique_id等欄位。 題目要求我們列出每位員工對應到的Unique ID
Thumbnail
Notion 是個功能強大的筆記和工作管理工具,可以根據不同的需求進行自定義。其中,使用 Formula 函數可以實現各種自動化和更多的數據操作。本篇文章中,我將向你展示如何使用 Formula 函數在 Notion 中顯示星期幾,在哪些情境下這個功能非常有用,提供實際演練,以及延伸應用。看下去囉。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
已經存在在table裡面的那些record做更新。 ※ 語法 UPDATE [LOW_PRIORITY] [IGNORE] table_name SET column_name1 = expr1, column_name2 = expr2, … [WHERE
Thumbnail
只需要一個資料庫就可以做到各種不同的用途顯示 像紙本的五年手帳一樣,可以自動回顧「過去的今天」的日記模板要如何設定? 函數設定的思路與教學都在這邊了! 免費日記模板下載
Thumbnail
※ 把record加到table有兩種方式: VALUES • SELECT ※ 語法 INSERT INTO VALUES 語法: Record 代表一組值的集合,每個值對應到表格中的一個欄位(column)。 INSERT INTO 語法用來指定要插入資料的表格。 需要提供一個
Thumbnail
※ 別名: 目的在於提高SQL查詢的可讀性和簡潔性。 ※ 別名有兩種: Column Alias(列別名):在查詢結果中的某一列,取一個臨時的新名字。 Table Alias(表別名):給查詢中的表取一個短暫的新名字。 ※ Column Alias ※ 為什麼需要 Column A
Thumbnail
※ GROUP BY 用於將數據表中的數據按照一個或多個列進行分組。例如在處理一個表格的資料時,可以指定欄位,一個或是多個,然後把將其視為ID進行分組處理。 ※ 語法 SELECT column1, column2, ..., aggregate_function(column) FROM
※什麼是資料 : 說明: 「資料」(information/data) 是網路應用程式的核心。 使用者分享的照片、電商販賣的產品,或是搜索引擎提供的餐廳評價都是資料。 主要特徵: 生活中任何基本的事實 (fact) 或是值 (value) 都可以被稱為資料。例如:你的名字、你的生日。 因
Thumbnail
題目敘述 題目會給我們兩張資料表。 第一張資料表是Employees 裡面分別有id、name等欄位。這張資料表的id是主鍵。 第二張資料表是EmployeeUNI 裡面分別有id、unique_id等欄位。 題目要求我們列出每位員工對應到的Unique ID
Thumbnail
Notion 是個功能強大的筆記和工作管理工具,可以根據不同的需求進行自定義。其中,使用 Formula 函數可以實現各種自動化和更多的數據操作。本篇文章中,我將向你展示如何使用 Formula 函數在 Notion 中顯示星期幾,在哪些情境下這個功能非常有用,提供實際演練,以及延伸應用。看下去囉。