Notionで日記DBの作成

はじめに

去年からNotionで日記DBを作ろうと試行錯誤していたが、やっと一定の形が出来上がりつつある。自己満足の極みだが、Notionのオートメーションや関数設定の参考になるかもしれないと考えたので、これまでの試行錯誤をメモとしてまとめておく。
 

DBの構造

DBは大きくDiary、Weekly、Monthlyの3つとする。 これは以前有料で購入してみた【Notion手帳】の構造を参考にしている。 各DBの構造は次の通り。

Diary

Diaryのプロパティは次の通り。
  • 日付
  • 毎日のDoToのプロパティ(薬飲んだかとか、運動したか、酒飲んでしまったかとか…) ちなみにやったかやらなかったかはIn Progressで管理している。これはやったことが必ずしも良いこと(酒飲んだがいい例)とは限らないため、Yes/Noに個別の意味づけをするためである。
  • WeeklyとMonthlyのリレーション ToDoを週、月で集計するためにリレーションを設定する。このリレーション、便利なのだが整合をとるのが非常に面倒。まともに使いこなせていなかったが、後述のオートメーションでなんとか整理しやすい形を作ることができた。
ちなみに、日記本文はプロパティとは別で本文のブロックで書くこととした。 プロパティの1つとして管理する方法もあり、DBとしてはそちらが正なのだが、多様な書式が使えなのと視認性に欠けるのでDBの外枠でページの本文で管理することとした。その代わり、本文は1つの同期ブロック内に書くルールとしている。これは、Weeklyで毎日の本文を引用したいからである。

Weekly

Weeklyのプロパティは次の通り。
  • 日付(範囲で該当の週を定義)
  • 毎日のDoToのプロパティの集計結果
  • Diaryとのリレーション
Weeklyは主にDiaryの当週の集計結果がメイン。 集計結果だけだと味気ないので、日記本文の同期ブロックを貼り付けて1週間の日記をまとめて表示できる形にした。ただし、日記のまとめがオートメーション化できず手作業なのでここはなんとかしたい。

Monthly

Monthlyの使い方はWeeklyとほぼ同じ。プロパティは次の通り。
  • 日付(範囲で当月を定義)
  • 毎日のDoToのプロパティの集計結果
  • Diaryとのリレーション
Monthlyは主にDiaryの当週の集計結果がメイン。 Monthlyには日記の集約はしていない。別途当月の目標・結果をまとめる予定だが、そこまでは作り込んでいない。
 

Diary、Weekly、Monthlyのオートメーション

3つのDBのリレーションは以前有料で購入した【Notion手帳】にあったものである。これ自体は良い考え方と思っているが、この毎日の決まったプロパティの設定とDB間のリレーションの設定が非常にめんどくさい。そのため、これをなんとかして自動化できないものかとずっと考えていた。
結局昨年から四苦八苦していたが、Notionのオートメーションを活用して次の形に落ち着いたのでまとめておく。

Monthlyの自動化

Monthlyについてはタイトルと期間の設定をオートメーション化し、ページ作成時に自動で設定するようにした。設定したオートメーションのアクションは次の通り。
Monthlyの最終的なオートメーション
Monthlyの最終的なオートメーション
タイトルの設定 関数で次の値を設定。これで “2025/02” といった今月のタイトルでページを作成できる。このコードは非常にシンプル。
期間の設定 関数で次の値を設定。これで “2025/02/01~2025/02/28” といった今月中を期間として設定できる。

Weeklyの自動化

WeeklyについてもMonthlyと同様、タイトルと期間の設定をオートメーション化し、ページ作成時に自動で設定するようにした。設定したオートメーションのアクションは次の通り。
Weeklyの最終的なオートメーション
Weeklyの最終的なオートメーション
タイトルの設定 関数で次の値を設定。これで “2025/02/03 - 2025/02/09” という月曜~日曜までの日付を設定したタイトルでページを作成できる。
期間の設定 関数で次の値を設定。これで “2025/02/03~2025/02/09” という今週中を期間として設定できる。

Diaryの自動化

Diaryについてはタイトルの設定と、Weekly、Monthlyをオートメーション化。そして、ほかと同様ページ作成時に自動で設定するようにした。ちなみに、日付の設定はオートメーションではなく、ページのテンプレートで指定している。 設定したオートメーションのアクションは次の通り。
 
最終的なDiaryのオートメーション
最終的なDiaryのオートメーション
タイトルの設定 関数で次の値を設定。これで “2025/02/09(日)” という日付&曜日を設定したタイトルでページを作成できる。
リレーションの設定
フィルターで期間が本日のページを抽出した上、Weekly、Monthlyのプロパティに作成するページを参照として追加。
 

最後に

これで形になってきたので当面はこれで使ってみる。 使っているうちに改善点は出てくるかもしれないが、そのときはそのときでできる範囲で改善しよう。