リレーションとロールアップ
2つのデータベースの情報を一度に見たいこともありますよね。Notionデータベースのリレーション形式のプロパティを活用すれば、複数のデータベースからのアイテムを関連付けて様々な表現をすることができます 🛠
よくあるご質問(FAQ)に移動たとえば、あなたが以下の2つのデータベースを仕事で使っていたとしましょう 😉
顧客管理データベース
購入アイテム管理データベース
誰がどのアイテムを買ったのかも知りたいし、どのアイテムが誰に購入されたのかも確認したいですよね。そこでリレーションの出番です!
上記の2つのテーブルでは、
↗ Items Purchased
と↗ Customers
がリレーション形式のプロパティとなっています。リレーション形式のプロパティは、他のプロパティ形式と同様の方法で追加することが可能です。Customersデータベースで購入アイテムを追加すると、Itemsデータベースの
↗ Customers
列に購入者名が自動的に反映されます。
活用事例
飲食店一覧 と エリア一覧 をリレーションで関連付ければ、どのエリアにどんな飲食店があるのかが一目でわかるようになります。
議事録一覧 と 顧客一覧 を関連付ければ、各顧客に関連する議事録に簡単にアクセスできるようになります。
タスク一覧 と プロジェクト一覧 を関連付ければ、プロジェクトとタスクの相関関係がクリアになります。
候補者一覧 と 面接官一覧 を関連づけておけば、誰が誰の面接を行ったのかのログを残すのに便利です。
2つのデータベースをリレーションで関連付けるには、まずデータベースを2つ作る必要があります。そこでまず、上記の例で登場した Customers と Items という名称の2つのデータベースを作成したと仮定して、リレーションの作成方法をご説明します。
Customersデータベースに新しい列/プロパティを追加し、「Items Purchased」などの名前をつけます。
リレーション
を見つけます。次に、リレーションで接続したいデータベースを検索します。
リレーションのプレビューが表示されます。今回のケースでは、CustomersデータベースからItemsデータベースへのリレーションを作成しました。
青色の
リレーションを追加
ボタンをクリックして、新しいリレーション形式のプロパティの作成を確定します。このリレーション列のセルをクリックすると、他のデータベースから追加するアイテムを検索して選択できるメニューがポップアップします。
以下の例では、各顧客がどの服を購入したかを入力する様子を示しています。
アイテムを追加したい場合は、リスト内の名前をクリックします。アイテムを削除したい場合は、アイテムにカーソルを合わせて、右側の
–
をクリックします。
ヒント: 関連付けるデータベースを変更したい場合、対象のプロパティのプロパティ種別から再度 リレーション
を選択し、新しいデータベースを選択します。
リレーションは、デフォルトでは一方向で作成されます。しかし、リレーション対象のデータベースにも簡単に対応するリレーションプロパティを作成することができます。
双方向リレーションの場合、編集した内容は相互に同期されるので、Items データベースのリレーション列に顧客を追加すると、Customers データベースにも編集内容が反映されます。
上記の手順に従って、新しいリレーション形式のプロパティを作成します。
[関連データベース名]に表示
のトグルをクリックします。この例では、Itemsデータベースに表示
という表記になっています。対応するリレーションに名前を付けます。
下に、双方向リレーションのプレビューが表示されます。今回のケースでは、CustomersデータベースからItemsデータベースへのリレーションを作成し、さらにItemsデータベースからCustomersデータベースへのリレーションを作成しています。
青色の
リレーションを追加
ボタンをクリックして、これら2つの新しいリレーション形式のプロパティ作成を確定します。
リレーションを作成するときは、あるデータベースに格納されているNotionページを別のデータベースのプロパティフィールドに追加します。
これらのページは、他のページと同様に開いて編集することが可能です。リレーション列のページをクリックし、表示されたウィンドウでページをもう一度クリックします。
関連付けられている任意のページにカーソルを合わせて、右側の
–
をクリックする方法でも削除できます。
リレーションプロパティに含めることができるページの数を制限するには、オプションで
1ページ
または無制限
を選択します。1ページ
に制限するオプションを選択した場合、データベースを使用するユーザーはリレーションで1ページしか選択できません。これは、たとえば、各購入に関連付ける注文番号を1つのみにする必要がある場合など、1つのページのみを相互に関連付けたいときに便利です。
リレーションは3つの方法でページに表示できます。
表示方法は、以下の手順で変更できます。
データベース上でリレーションをクリックします。
表示方法
をクリックし、以下のいずれかを選択します。
プロパティとして表示
: 他のページプロパティと一緒に、ページの上部に表示されます。セクションとして表示
: ページ本体のすぐ上に、独自のセクションとして表示されます。リレーションを目出たさせたい場合に最適な表示方法です。最小化
: ページ本体のすぐ上に表示されますが、コンテンツはミニマルに表示されています。
備考: リレーションを 最小化
から別の表示に変更する場合は、 •••
→ ページをカスタマイズ
をクリックします。
リレーションの表示プロパティのカスタマイズ
データベースでリレーションを設定する際、リンクされたページのプロパティの中から表示項目を選択することもできます。たとえば、よくある質問(FAQ)のデータベースが社内にあるとします。各FAQには質問の回答を詳しく説明するページへのリレーションがあります。各ページの担当者がユーザーに表示されるようにして、追加の質問を誰に尋ねたらよいかわかるようにしたい場合は、担当者がリンクしたページと共に表示されるようにFAQデータベースを設定できます。
方法は次のとおりです。
リレーションプロパティがあるデータベースのページを開きます。
ページをリンクさせるプロパティの横にあるフィールドをクリック →
•••
をクリックします。開いたメニューで、関連するデータベースのプロパティを
リレーションで表示
またはリレーションで非表示
の希望する方のセクションにドラッグします。完了すると、リレーションフィールドに該当プロパティが表示されます。この操作は現在のデータベースにあるすべてのページに適用されます。
同じデータベース内のアイテムを相互に関連付けたいとしましょう。たとえば、タスクデータベースがあって、各タスクを他のタスクに関連付けたい場合です。
まずは新しいリレーションを作成することから始めます。
次に、現在操作しているデータベースを検索して選択します。
これで、データベースと
このデータベース
とのリレーションが作成されました。
2つのデータベース間のリレーションと同様に、一方向か双方向のリレーションにするように選択できます。
双方向リレーションにするには、
個別のプロパティ
のトグルをオンにします。これで、2つ目のプロパティが表示されます。
ロールアップ機能を使えば、リレーションに基づきデータの集計をすることが可能です。再度CustomersとItemsのデータベースの例を使い、各顧客が何を購入してどのくらい支払ったのか知りたいとしましょう。
まず、誰が何を購入したのかが分かるようリレーションを作成します。
新しい列/プロパティを追加して、
プロパティの種類
メニューからロールアップ
を選択し、列に名前をつけます。
ロールアップ列のセルをクリックすると、以下を選択する新しいメニューが表示されます。
ロールアップしたいリレーション形式のプロパティ
関連付けられたページのうち、ロールアップしたいプロパティ
プロパティに適用したい計算
この例でいうと、これらのページ内のリレーション形式のプロパティ
Items Purchased
とPrice
プロパティをロールアップして、計算としてSum
(合計)を選択しています。これで顧客名に関連付けられたアイテムの金額の合計値が算出されるため、顧客ごとの合計支払額がロールアップ列に表示されるようになります。
ロールアップの種類
ロールアップ列に適用できる計算方法にはさまざまなものがあります。以下で、すべての方法を紹介します。
オリジナルを表示する
: 関連付けられたすべてのページがセルに列挙されます。リレーション形式のプロパティと同様の使用感です。一意の値を表示する
: 関連付けられたすべてのページのうち、選択したプロパティの一意の値を表示します。すべてカウント
: 関連付けられたすべてのページのうち、選択したプロパティの値の個数が表示されます。値の数をカウント
: 関連付けられたすべてのページについて、選択したプロパティ内の空ではない値の個数が表示されます。一意の値の数をカウント
: 関連付けられたすべてのページのうち、選択したプロパティにある一意の値の個数が表示されます。未入力をカウント
: 関連付けられたページのうち、選択したプロパティが空欄になっているページの数が表示されます。例えば、顧客が購入した1つのアイテムに価格が設定されていなかった場合、ロールアップ列には「1」が表示されることになります。未入力以外をカウント
: 関連付けられたページのうち、選択したプロパティに値が割り当てられているページの数が表示されます。未入力の割合
: 関連付けられたページのうち、選択したプロパティが空欄になっているページの割合が表示されます。未入力以外の割合
: 関連付けられたページのうち、選択したプロパティが空欄ではないページの割合が表示されます。
以下のロールアップの計算は 数値
形式のプロパティのみで利用可能です。
合計
: 上記の例のように、関連付けられたページの数値形式のプロパティの合計が計算されます。平均
: 関連付けられたページの数値形式のプロパティの平均が計算されます。中央値
: 関連付けられたページの数値プロパティの中央値が表示されます。最小
: 関連付けられたページの数値形式のプロパティの最小値が表示されます。最大
: 関連付けられたページの数値プロパティの最大値が表示されます。範囲
: 関連付けられたページの数値形式のプロパティの最小値と最大値の範囲が計算されます。(最大
から最小
を引いた数値)
以下のロールアップの計算は 日付
形式のプロパティのみで利用可能です。
最も古い日付
: 関連付けられたすべてのページの日付形式のプロパティのうち最も古い日時が表示されます。最も新しい日付
: 関連付けられたすべてのページの日付形式のプロパティのうち最も新しい日時が表示されます。日付範囲
: 関連付けられたページの日付形式のプロパティのうち、最も古い日時と最も新しい日時の時間範囲が計算されます。
ロールアップの集計
テーブルでもボードでも、ロールアップ列に対してデータベース全体での合計、範囲、平均などの集計をさせることができます。
全顧客の購入金額の合計値を算出したいとしましょう。
Customersテーブルでロールアップ列の下にカーソルを合わせ、
計算
をクリックします。合計
を選択すれば、その列のすべての数値を合計した値が表示されます。
よくあるご質問(FAQ)
リレーションをエクスポートやインポートできますか?
リレーションをエクスポートやインポートできますか?
リレーションを含むデータベースをCSVファイルとしてエクスポートすると、リレーションプロパティは、プレーンテキストでURLとしてエクスポートされます。現時点では、そのCSVをNotionに再インポートすることで他のデータベースとのリレーションを再構築することはできません。
リレーションを持つデータベースを複製できますか?
リレーションを持つデータベースを複製できますか?
可能ですが、やや複雑な挙動となります。
上記の例でいうと、Customersデータベースを複製すると、Itemsデータベースに新しいリレーション形式のプロパティが自動的に複製されます。
これはNotionのリレーションが双方向同期される仕組みになっているためです。そのため、データベースが複製されると、リレーション自体も複製される仕組みになっています。そのうちコツがつかめます!💪
ロールアップをロールアップできますか?
ロールアップをロールアップできますか?
残念ながら、意図せぬ循環参照が生じる可能性があるため、ロールアップのロールアップはできません。別のプロパティをロールアップすることをお勧めします 😊