Notionでは同じデータベースにリレーションをすることが出来るのを知っているだろうか?いや、普通に知ってるわって人も多そうだが、本記事では同じデータベースにリレーションをする方法と2つのパターンについて解説する。


この記事の内容
データベースを増やさないため。Notionでは簡単にデータベースを作ることが出来るが、同じ項目を持つデータベースはできるだけまとめた方が管理しやすい。なぜかを説明するのは難しいのでそういうものと思って欲しい。
タスク管理のデータベースを作ったのであれば「タスク」管理は単一のデータベースでやった方が効率がいい。しかしながら、タスク同士をリレーションしたいという場合もある。そのようなときに本記事で紹介する「同じデータベースへリレーション」を使えば良いだろう。
個人的には余り使わないケース。次に説明する「違うプロパティで管理するパターン」をもっぱら利用しているが、理解促進のためまずはこちらのパターンを解説する。
例として「タスクDB」という超簡単なタスクデータベースがあったとする。同じデータベースへリレーションしたい場合、プロパティ選択画面よりリレーションを選択する。



リレーション先に「タスクDB」を指定すると、下記のような画面が現れる。同じプロパティで管理する場合は下側の「Use the same property」を選択しよう。

この場合、リレーション元からは通常のリレーションと同様にリレーション先を指定して表示することができる。ただし、リレーション先からはリレーション元を参照できない点が通常のリレーションとは異なる点だ。リレーションという言葉を多用しすぎてよくわからなくなってくる。下の画面を見て欲しい。

次に異なるプロパティで管理するとき。俺がよく使うパターン。途中までは同じだが、下記の画面の際に「Create a new property」を選択しよう。

すると、以下の通り、2つのプロパティが追加されていることが分かる。ひとつのデータベース内で、リレーション元とリレーション先を表現できるということだ。

もうおわかりだとは思うが、こちらのパターンであればデータの親子関係を表現することが出来る。タスクであれば子タスクを指定することで指定された子タスクのデータには自動的に親タスクがリレーションされる。めちゃくちゃ便利である。

さらにロールアップやフォーミュラ機能を使うことで子タスクの完了状況から進捗状況を取得して表示することも可能だ。以下の画面であれば「進捗」列がそれを表している。完了チェックが入っていれば100%、子タスクがある場合は子タスクの完了状況に応じた進捗が表示される。

本記事では同じデータベースにリレーションをする2つのパターンを紹介した。状況に応じて使い分けて欲しい。前述の通り、親子関係を表すためには非常に有用な機能なので積極的に活用したい。